PowerShellを使用してインストールされているソフトウェアのバージョン情報を取得することは、システム管理者や開発者にとって非常に有用です。この記事では、その手法を初心者にも理解しやすいように詳細に解説します。さらに、この情報がどのように役立つのか、応用例も含めてご紹介します。
PowerShellとは
PowerShellはMicrosoftが開発したシェルプログラミング環境であり、主にWindows環境で使用されます。しかし、近年ではLinuxやmacOSでも利用可能です。コマンドラインから操作することで、システム管理タスクを自動化したり、情報を取得することができます。
なぜPowerShellが必要なのか
GUI(グラフィカルユーザーインターフェイス)で手作業で作業をするよりも、コマンドラインを使って作業を自動化する方が、効率が良い場合が多いです。特に、多数のマシンを一括管理する必要がある場合、PowerShellのようなツールは非常に有用です。
基本的なコマンドで情報を取得する
まずは基本的なコマンドでインストールされているソフトウェアのバージョン情報を取得してみましょう。
# Get-WmiObjectを用いて、インストールされているソフトウェアの情報を取得
$installedSoftware = Get-WmiObject -Class Win32_Product
# 取得した情報から、ソフトウェア名とバージョンを表示
$installedSoftware | ForEach-Object {Write-Host "$($_.Name) : $($_.Version)"}
コードの説明
Get-WmiObject -Class Win32_Product
: WMI(Windows Management Instrumentation)を使って、インストールされているソフトウェアの情報を取得します。ForEach-Object
: 取得したソフトウェア情報を一つずつ処理します。Write-Host
: コンソールにテキストを出力します。
補足:WMIとは
WMI(Windows Management Instrumentation)は、Windowsのシステム情報を管理するためのプログラミングインターフェイスです。多くの情報を取得・設定することができる強力なツールです。
高度な例:特定のソフトウェアだけをフィルタリング
次に、特定のソフトウェアだけをフィルタリングしてバージョン情報を取得する方法です。
# 特定のソフトウェア(ここでは"Google Chrome")のバージョン情報を取得
$specificSoftware = $installedSoftware | Where-Object {$_.Name -like "Google Chrome"}
# バージョン情報を表示
Write-Host "$($specificSoftware.Name) : $($specificSoftware.Version)"
コードの説明
Where-Object
: 取得したオブジェクトから特定の条件に一致するものだけを選択します。$_.Name -like "Google Chrome"
: ソフトウェア名が”Google Chrome”であるものだけを抽出します。
応用例:Excelに情報を出力する
このようにして取得したバージョン情報をExcelに出力する例もあります。これは、ソフトウェアの監査に使える情報です。
# 前提として、ExcelのCOMオブジェクトを作成
$excel = New-Object -ComObject Excel.Application
# 省略(Excelの処理)
まとめ
PowerShellを使用してインストールされているソフトウェアのバージョン情報を取得する方法について、基本的な手法から高度な手法、さらには応用例までを解説しました。これをマスターすることで、システム管理作業が格段に効率化されるでしょう。
コメント