目前正在编写一个脚本来 ping /24 子网上的每个主机,然后执行另一个脚本,该脚本在那些在线的机器上运行 psexec。ping 扫描脚本称为 ping.bat,而在机器上实际运行 psexec 的另一个脚本称为 deploy_mir.bat。我可以简单地在远程主机上运行 deploy_mir.bat,它运行起来没有问题。
我遇到的问题是每次 mir.bat 运行时,它本身包含一个循环,它会在 cmd 窗口中显示 psexec 的帮助信息。据我所知,一切正常,除了每次运行 mir.bat 内部的循环时,我的 cmd 窗口都会充满 psexec 的帮助信息。我没有启用@echo,并不是说它会导致这种情况。
希望快速修复,但如果需要我的代码来获得答案,请发布它。
无论如何发布代码...
@echo on
setlocal EnableDelayedExpansion
set /p ipAddress="enter ip address: "
for /l %%i in (1,1,255) do (
ping -n 1 %ipAddress%.%%i | find "TTL" > nul
if !errorlevel! == 0 (
call deploy_mir.bat %ipAddress%.%%i
)
)
endlocal
deploy_mir.bat 代码
@ECHO OFF
echo "Mir Agent deployment to: %1"
rem net use T: \\%1\C$ /user:administrator "password"
net use T: \\%1\C$ /user:administrator "username"
copy /y conf.xml T:\WINDOWS\
copy /y setup_mir.bat T:\WINDOWS\
net use t: /delete
rem psexec \\%1 -i -u administrator -p "password" c:\windows\setup_mir.bat
psexec \\%1 -i -u administrator -p "username" c:\windows\setup_mir.bat
运行 deploy_mir.bat 所需的 cmd 行结果
C:\DOCUME~1\socuser2\MIR>deploy_mir.bat 10.180.145.66
"Mir Agent deployment to: 10.180.145.66"
The command completed successfully.
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.
t: was deleted successfully.
PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
c:\windows\setup_mir.bat exited on 10.180.145.66 with error code 0.
C:\DOCUME~1\socuser2\MIR>