PowerShell

【PowerShell】Ping実行ウィンドウを作ってみる

2018年8月4日

こんにちは!SE ブログの相馬です。

 

 

PowerShell で画面が作れると知って、前回はメッセージボックスを作りましたので、もう少し高度なもので実用的なものを作りたいと思いました。

 

 

メッセージボックスを表示する

 

 

PowerShell は .NET Framework のライブラリを利用できスクリプト内で書けます。下は @IT の記事を引用させていただきました。

 

 

PowerShellではただコマンドレットから返されるオブジェクトを利用できるばかりではない。自ら.NET Frameworkが提供するクラスをインスタンス化して、スクリプトの中で利用することも可能だ。これによって、スクリプト上でVisual BasicやC#と限りなく同等の操作を行うことができる点は、PowerShellを利用する最大のメリットであるともいえるだろう。

PowerShellスクリプティングの第一歩(後編) (5/5) | @IT

 

 

という事で、今回は Ping ができて、結果も確認できるツールを作ってみました。 完成形としてはこんな感じです。

 

 

 

 

PowerShell で画面が作れると、ユーザー向けや管理者向けに便利なツールが作れる事が分かったので、社内 SE をやっている方であれば仕事で実用化できると思います。

 

 

では早速始めてみましょう。

 

 

フォームウィンドウ

 

 

まずはフォームの外枠をつくってゆきます。必要なアセンブリを読み込んでから、オブジェクトを生成します。オブジェクトを生成するためには New-Object コマンドレットを使います。@IT の記事で分かり易い説明がありましたのでリンクを貼っておきますね。

 

 

PowerShellスクリプティングの第一歩(後編) (5/5) | @IT

 

 

フォームを作るオブジェクトを作成したら、また New-Object コマンドレットでウィンドウのサイズを指定して、Form の Size プロパティに代入します。その後にフォームを表示し、フォームをアクティブにします。

 

 

 

フォームの外枠ができました。

 

 

 

 

テキストボックス

 

 

入力テキストボックス

 

 

次に、一行のテキストボックスを作成します。フォーム内にオブジェクトを作ります。全て入力テキストボックスに関するものです。

 

 

 

 

表示用のテキストボックス

 

 

次に表示用のテキストボックスを作成します。入力テキストボックスと同様、フォーム内にオブジェクトを作ります。

 

 

 

 

テキストラベル

 

 

入力テキストボックスに表示させるラベルを作成します。

 

 

 

 

ボタン

 

 

テキストボックスが出来たら、ボタンを作ります。テキストボックスと同様、フォーム内にオブジェクトを作ります。

 

 

 

 

Ping

 

 

入力テキストボックスにマシン名を入力して、Ping した結果を表示用テキストボックスに表示する処理を関数で書きます。

 

 

 

 

最後に、上で作成した関数を $Button.Add_Click({}) に入れます。

 

 

 

 

全てできあがったら、コードをまとめます。

 

 

 

 

 

 

 

 

いかがでしょうか。

 

 

まだまだ PowerShell で画面を作ることを学び始めたばかりですが、こうやってフロント的なツールが作れると面白いですね。私は Web フロントの HTML や CSS が好きなので、こういうものを作るのが以外と好きなのかもしれません。

 

 

色々作れるようになれば、ヘルプデスクや社内 SE として仕事していれば、色々と役に立つものが作れるかと思いますし、作る事によって PowerShell の技術スキルも向上すると思います。

 

 

では最後までお読みいただきありがとうございました!

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りな性格です。

人気記事

1

こんにちは!そーまんです。 今回は、PC に適用されている GPO を確認する方法について書きました。 本題に入る前に、一応参考までにGPOの適用タイミングについての記事をここに貼りましたので、必要に ...

2

こんにちは!そーまんです。 今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは前置きからです。 まずはじめに 組織では PC のラ ...

3

こんにちは!そーまんです。 今回は、グループポリシー (GPO) を使って、特定のコンピューターに対して、ドメインユーザーに ローカル管理者権限 (以下は特権と記載) を付与する方法について書きました ...

4

こんにちは!そーまんです。 今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 Windows 10 の検証環境をいじってたらサイン ...

5

こんにちは!そーまんです。 今回は、ユーザープロファイルを削除する方法について書いてみました。 企業の場合よくあることですが、1 台の PC を共有 PC として複数人で使ったり、また余り無いかもしれ ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!そーまんです。 今回は、Windows Server 2019 で NTP サーバーと同期する方法について書きました。 NTP サーバーの必要性や時刻同期の重要性を理解することは社内のシス ...

-PowerShell
-