5.ConvertTo-HTML
PowerShellはシステムに関する情報を豊富に提供してくれるが、それを画面上で見る以上のことが必要になる場合もある。時には、他の人に送れるようなレポートが作りたい場合もあるだろう。そのための手段の1つに、ConvertTo-HTMLコマンドを使うというものがある。
このコマンドを使うには、パイプで他のコマンドの出力をConvertTo-HTMLコマンドに流し込んでやればいい。HTMLファイルにどのプロパティを含めるかを制御するには-Propertyスイッチを使用する。この時、ファイル名を必ず指定する必要がある。
このコマンドはどんな場面で役に立つのだろうか。前の項目に戻って、Get-Serviceでシステムにインストールされているすべてのサービスのリストを作成する時のことを考えてみよう。ここで、各サービスの名前と状態(そのサービスが実行されているかどうかに関わらず)を列挙してHTMLのリポートを作りたいとする。これには、次のようなコマンドを使えばいい。
Get-Service | ConvertTo-HTML -Property Name, Status > C:\services.htm
6.Export-CSV
PowerShellのデータに基づいてHTMLのリポートを作れるのと同じように、PowerShellのデータをMicrosoft Excelで使えるCSVファイルとして出力することもできる。構文は、出力をHTMLに変換するコマンドと似ている。このコマンドには、必ず出力先のファイル名を指定する必要がある。例えば、システムサービスのリストをCSVファイルとして出力したければ、次のようなコマンドを使えばよい。
Get-Service | Export-CSV c:\service.csv
7.Select-Object
上記のコマンドを使ってみると、出力されたCSVファイルには多数のプロパティが含まれていることに気付くだろう。欲しいプロパティだけが出力されるように、絞り込めれば役に立つ。こういうときには、Select-Objectコマンドを使うといい。Select-Objectコマンドを使えば、出力に含めるプロパティを指定することができる。例えば、各システムサービスの名前と状態だけが入ったCSVファイルを作りたければ、次のようなコマンドを使う。
Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv
8.Get-EventLog
PowerShellを使って、コンピュータのイベントログを調べることもできる。利用できるパラメータはいくつかあるが、とりあえずログファイルの名前に-Logスイッチをつけてコマンドを試してみることもできる。例えば、Applicationのログを見たければ、次のようなコマンドを使えばいい。
Get-EventLog -Log "Application"
もちろん、このコマンドを実際に使うことはほとんどない。おそらく、他のコマンドをつかってこの出力をフィルタリングし、CSVファイルやHTMLファイルにしたいことの方が多いだろう。
9.Get-Process
Get-Serviceコマンドを使ってすべてのシステムサービスのリストを表示させることができるのと同じように、Get-Processを使えば、現在そのシステム上で実行されているすべてのプロセスのリストを表示させることができる。
10.Stop-Process
時々、プロセスがフリーズしてしまうことがある。これが起こった場合には、Get-Processコマンドを使えば応答しないプロセスの名前かプロセスIDを入手できる。その後、Stop-Processコマンドをつかってそのプロセスを終了させればいい。名前でも、プロセスIDでもプロセスを終了させることができる。例えば、次のコマンドのどちらを使っても、Notepadを終了させることができる。
Stop-Process -Name notepad
Stop-Process -ID 2668
ただし、プロセスIDはセッションによって異なる場合があることに注意して欲しい。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。