PowerShell版
役割、機能の一覧を表示
$host_name = hostname $file_name = $host_name+"_function.csv" Get-WindowsFeature | Export-Csv $file_name -Encoding Default
サービスの一覧を表示
$host_name = hostname $file_name = $host_name+"_services.csv" $triggers = Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services" | Where-Object { $_.GetSubkeyNames().Contains("TriggerInfo") } | ForEach-Object { $_.Name.Split("\")[-1] } $startMode = @{ Manual = "手動"; Disabled = "無効"; Auto = "自動"; Unknown = "不明" } $startOption = @{ 01 = " (トリガー開始)"; 10 = " (遅延開始)"; 11 = " (遅延開始、トリガー開始)" } $serviceData = Get-CimInstance -ClassName Win32_Service | Select-Object @( @{ n = "表示名"; e = { $_.DisplayName } } @{ n = "スタートアップの種類"; e = { $startMode[$_.StartMode] + $startOption[10 * ($_.StartMode -eq "Auto" -and $_.DelayedAutoStart) + $triggers.Contains($_.Name)] } } @{ n = "状態"; e = { if($_.State -eq "Running") { "実行" } else { "停止" } } } ) $serviceData | Export-Csv $file_name -Encoding Default
更新プログラム履歴を表示する
$host_name = hostname $file_name = $host_name+"_secpatch.csv" Get-WMIObject Win32_QuickFixEngineering | Export-Csv $file_name -Encoding Default
インストール済みアプリケーションの一覧
$host_name = hostname $file_name = $host_name+"_software.csv" Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | %{Get-ItemProperty $_.PsPath} | sort displayname | select DisplayName,Publisher | Export-Csv $file_name -Encoding Default
など
上記をまとめると
#ホスト名 $host_name = hostname #役割情報、機能情報の一覧 $file_name = $host_name+"_function.csv" Get-WindowsFeature | Export-Csv $file_name -Encoding Default # サービスの一覧 $triggers = Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services" | Where-Object { $_.GetSubkeyNames().Contains("TriggerInfo") } | ForEach-Object { $_.Name.Split("\")[-1] } $startMode = @{ Manual = "手動"; Disabled = "無効"; Auto = "自動"; Unknown = "不明" } $startOption = @{ 01 = " (トリガー開始)"; 10 = " (遅延開始)"; 11 = " (遅延開始、トリガー開始)" } $serviceData = Get-CimInstance -ClassName Win32_Service | Select-Object @( @{ n = "表示名"; e = { $_.DisplayName } } @{ n = "スタートアップの種類"; e = { $startMode[$_.StartMode] + $startOption[10 * ($_.StartMode -eq "Auto" -and $_.DelayedAutoStart) + $triggers.Contains($_.Name)] } } @{ n = "状態"; e = { if($_.State -eq "Running") { "実行" } else { "停止" } } } ) $file_name = $host_name+"_service.csv" $serviceData | Export-Csv $file_name -Encoding Default #更新プログラム履歴の一覧 その1 $file_name = $host_name+"_secpatch.csv" Get-WMIObject Win32_QuickFixEngineering | Export-Csv $file_name -Encoding Default #更新プログラム履歴の一覧 その2 $file_name = $host_name+"_patch.txt" $mySession = New-Object -ComObject Microsoft.Update.Session $mySearcher = $mySession.CreateUpdateSearcher() $mySearcher.Search("IsInstalled=1").Updates | ft -a Date,Title > $file_name #更新プログラム履歴の一覧 その3 $file_name = $host_name+"_patch.csv" $session = New-Object -ComObject Microsoft.Update.Session $searcher = $session.CreateUpdateSearcher() $results = $searcher.QueryHistory(0, $searcher.GetTotalHistoryCount()) $results| where Title -ne $null| select @( @{L="HotFixId";E={$_.Title -replace '^.*(KB\d+).*$','$1'}}, "Date", "Title", "Description" ) | Export-Csv $file_name -Encoding Default #更新プログラム履歴の一覧 その4 wmic qfe list /format:htable > qfelist.htm #インストール済みアプリケーションの一覧 $file_name = $host_name+"_software.csv" Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | %{Get-ItemProperty $_.PsPath} | sort displayname | select DisplayName,Publisher | Export-Csv $file_name -Encoding Default