PowerShellスクリプトの実行例
では、最後にスクリプトの例を紹介しよう。このスクリプトはGet-WmiObjectコマンドレットを使い、Windowsの情報を得るものだ。まずは、OSの情報を表示させてみた。
Param([String]$computername=".")
$Wmiobjects = Get-WmiObject Win32_OperatingSystem -ComputerName $computername
foreach($Wmiobject in $WmiObjects)
{
Write-Host "OS名: " $WmiObject.Name
Write-Host "バージョン: " $WmiObject.Version
Write-Host "ロケール: " $WmiObject.Locale
Write-Host
}
実行結果は、図11となる。このスクリプトは、Get-OS.ps1というファイル名である。拡張子のps1は、PowersShellのスクリプトを意味する。このスクリプトファイルを実行するには、ファイルの相対パスを付けてプロンプトに入力する。たとえば、現在のディレクトリで実行するのであっても、「.\」を付加する(タブキーで自動補完されるが)。この例では「.\Get-OS.ps1」(拡張子はなくてもよい)とする。
Get-WmiObjectコマンドレットは、ハードウェアの情報を表示させることもできる。以下のスクリプトは、CPUの情報を表示する。
Param([String]$computername=".")
$cpus = Get-WmiObject Win32_Processor -ComputerName $computername
foreach($cpu in $cpus)
{
Write-Host "CPU情報"
Write-Host "CPU名: " $cpu.Name
Write-Host "キャプション: " $cpu.Caption
Write-Host "製造元: " $cpu.Manufacturer
Write-Host "ソケット形状: " $cpu.SocketDesignation
Write-Host "クロック数: " $cpu.CurrentClockSpeed "MHz"
Write-Host "L2キャッシュ容量: " $cpu.L2CacheSize "KB"
Write-Host
}
実行結果は、図12となる.
PowerShellに初めての読者には、少々、難しかったかもしれない。こんなこともできるということを理解していただければ幸いである。またスクリプトの実行には、実行ポリシーの変更も必要となる点を補足しておく。PowerShellは、もともと管理ツールとして開発されたものである。別名にlsがあるように、UNIXのシェル(bashやcsh)を非常に意識したものとなっており、対話型でもスクリプトでも強力な機能が使える。またリソースへのアクセスや.NET Frameworkのクラスライブラリの利用も可能である。管理以外でも、十分利用できる。この機会にコマンドレットやスクリプトを学ぶのもよいかもしれない。