PowerShellはWindows管理者やITプロフェッショナルがよく使用する強力なスクリプトエンジンです。この記事では、PowerShellを使ってアンインストールされたソフトウェアの情報をログに出力する方法について詳しく解説します。初心者でも理解できるように、一歩ずつ進めていきます。
目次
なぜこの処理が必要か?
ソフトウェアのアンインストールは、セキュリティやパフォーマンスの観点から非常に重要なプロセスです。特に大規模な企業環境であれば、何がインストール、アンインストールされたのかを把握することは絶対に避けては通れません。この処理によって、不要なソフトウェアが削除された際の記録を残すことができます。
必要な前提条件
- Windowsマシンが必要です。
- PowerShellがインストールされていること。
基本のコード
以下は、基本的なコードの一例です。
# アンインストールされたソフトウェアのログを取得する関数を定義
Function Get-UninstalledSoftware {
# レジストリからアンインストール情報を取得
$keys = Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
# 空の配列を作成
$uninstalledArray = @()
# レジストリキーごとに処理
foreach ($key in $keys) {
# ソフトウェア名とアンインストール日を取得
$softwareName = Get-ItemProperty -Path $key.PSPath -Name "DisplayName"
$uninstallDate = Get-ItemProperty -Path $key.PSPath -Name "UninstallDate"
# オブジェクトに情報を追加
$obj = New-Object PSObject -Property @{
"SoftwareName" = $softwareName.DisplayName
"UninstallDate" = $uninstallDate.UninstallDate
}
$uninstalledArray += $obj
}
# ログに出力
$uninstalledArray | Export-Csv -Path "C:\path\to\log.csv" -NoTypeInformation
}
# 関数を実行
Get-UninstalledSoftware
このコードはWindowsのレジストリからアンインストールされたソフトウェアの情報を取得し、それをCSVファイルとして保存します。
コードの解説
Get-UninstalledSoftware
という関数を定義しています。この関数が主要な処理を担っています。Get-ChildItem
でレジストリからアンインストールに関連するキーを取得します。foreach
ループで各レジストリキーを処理します。Get-ItemProperty
でソフトウェアの名前とアンインストール日を取得します。- 最後に、
Export-Csv
で取得したデータをCSVファイルに出力します。
応用例
- 特定の日付範囲のアンインストールをフィルタリングする: コード内で日付を比較することで、特定の期間内にアンインストールされたソフトウェアだけを抽出することができます。
- アラート機能を追加する: アンインストールが行われた際にメールやメッセージを自動送信するようにすることができます。
まとめ
PowerShellは、アンインストールされたソフトウェアの情報を簡単にログに出力するための優れたツールです。この記事で説明したコードを使えば、簡単に自分の環境に合わせてカスタマイズすることができます。IT環境で何が起きているのかを知るための第一歩として、ぜひこのスクリプトを使ってみてください。
コメント