for /f "tokens=*" %%a in (ip.txt) do (
wmic /FAILFAST:ON /node:%%a /user: /password: computersystem get Name, domain, Manufacturer, Model, NumberofProcessors, PrimaryOwnerName,Username, Roles, totalphysicalmemory /format:list
wmic /FAILFAST:ON /node:%%a /user: /password: cpu get Name, Caption, MaxClockSpeed, DeviceID, status /format:list
wmic /FAILFAST:ON /node:%%a /user: /password: path Win32_VideoController get Name, status, DeviceID /format:list
wmic /FAILFAST:ON /node:%%a /user: /password: os get Version, Caption, CountryCode, CSName, Description, InstallDate, SerialNumber, ServicePackMajorVersion, WindowsDirectory /format:list
wmic /FAILFAST:ON /node:%%a /user: /password: csproduct get identifyingnumber /format:list
) >%%a.txt这是我的代码,它的工作方式和它应该做的一样,但是/FAILFAST:ON它跳到下一个,如果你等待10-20秒,我需要它更快地扫描大型系统,有人有什么想法吗?
我是否可以使用一个if命令,该命令使用一个数据包,如果没有响应,可以转到next?
多亏了JosefZ:
for /f "tokens=*" %%a in (ip.txt) do (
set "_ready="
for /F %%G in ('ping -4 -n 1 %%a^|find "TTL="') do set "_ready=%%G"
if defined _ready (
rem your `WMIC /FAILFAST:OFF /node:%%a …`
wmic /node:%%a /user: /password: computersystem get Name, domain, Manufacturer, Model, NumberofProcessors, PrimaryOwnerName,Username, Roles, totalphysicalmemory /format:list
wmic /node:%%a /user: /password: cpu get Name, Caption, MaxClockSpeed, DeviceID, status /format:list
wmic /node:%%a /user: /password: path Win32_VideoController get Name, status, DeviceID /format:list
wmic /node:%%a /user: /password: os get Version, Caption, CountryCode, CSName, Description, InstallDate, SerialNumber, ServicePackMajorVersion, WindowsDirectory /format:list
wmic /node:%%a /user: /password: csproduct get identifyingnumber /format:list
)>"%%a.txt"
)发布于 2015-12-16 11:37:57
阅读关于 switch的文章:
在尝试对
/NODE计算机执行WMIC命令之前,是否检查它们。当FAILFAST是ON时,WMIC在向计算机发送WMIC命令之前,会在/NODE交换机中按下计算机。如果它们不响应ping,则不会为它们执行WMIC命令。
每个服务器有一个日志文件:
for /f "tokens=*" %%a in (ip.txt) do (
set "_ready="
for /F %%G in ('ping -4 -n 1 %%a^|find "TTL="') do set "_ready=%%G"
if defined _ready (
rem your `WMIC /FAILFAST:OFF /node:%%a …` commands here
)>"%%a.txt"
)或所有服务器的唯一日志文件:
for /f "tokens=*" %%a in (ip.txt) do (
set "_ready="
for /F %%G in ('ping -4 -n 1 %%a^|find "TTL="') do set "_ready=%%G"
if defined _ready (
rem your `WMIC /FAILFAST:OFF /node:%%a …` commands here
)
)>"logservers.txt"https://stackoverflow.com/questions/34307084
复制相似问题