0

我有一个要运行的 wmic 命令,如果安装了修补程序,它将查询机器列表并返回 csv 文件。在我的情况下,修补程序 ID 是 2617858。它开始处理,然后在大约 20 秒后出现:错误:描述 = 发生异常。当文件中有几台机器时它可以工作,但我需要在 40 台计算机上运行它。

有什么建议么 ?谢谢

代码:

 wmic /failfast:on /node:@"C:\users\username\desktop\servers.txt" qfe | find "2617858" > \\computername\C$\users\username\desktop\hotfix.csv
4

1 回答 1

0

对于它的价值,要求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 可能不会有更好的运气。

于 2013-03-08T14:41:05.017 回答