価値があるのは、配管するwmic
よりもフィルタリングを依頼する方が簡単な場合があります。このようなもの:wmic
find
wmic /node:@"C:\users\username\desktop\servers.txt" qfe where hotfixid="KB983590" get csname /format:list >>hotfix.txt
またはwmic
、servers.txt内のその数のサーバーを処理できないことが問題である場合は、バッチfor
ループを使用してリストをループしてみてください。
@echo off
setlocal
for /f "usebackq delims=" %%I in ("C:\users\username\desktop\servers.txt") do (
set /P "=Checking %%I... "
wmic /node:%%I qfe where hotfixid="KB983590" get csname /format:list >>hotfix.txt 2>>failures.txt
echo Done.
)
echo Unable to query the following computers:
type failures.txt
別の方法として、PowerShellを使用して同じアクションを実行できます。
powershell -command "$pcs = Get-Content C:\users\username\desktop\servers.txt; foreach ($pc in $pcs) { Get-WmiObject -Computername $pc Win32_QuickFixEngineering | where-object {$_.hotfixid -eq 'KB980232'} | select-object csname }" >>hotfix.txt
... wmiがwmicのサーバーで応答しない場合でも、PowerShellを使用してもそれほど幸運はありません。