我正在尝试在许多服务器(800+)上查找某个软件的安装版本。
该命令是:“dsmqver -f 2”,它返回类似“Version: 7.5.0.2”的输出
我一直在尝试使用 sysinternals 的 PsExec 来自动化该过程,但我并没有得到我想要的输出。
目前我的命令如下:
PsExec.exe @servers.txt -u myDomain\myUsername -p myPassword dspmqver -f 2 >>results.txt
它运行 servers.txt 文件中列出的服务器并运行命令 - 该部分有效,但输出以无用的方式排序。
输出的一个示例是:
Version: 7.5.0.2
Version: 7.5.0.4
\\server1:
\\server2:
\\server3:
问题是,server2 没有安装 MQ,并且处于离线状态。从输出中我无法判断哪些服务器安装了该软件,哪些没有安装,或者服务器是否处于在线状态。
有没有更聪明的方法可以做这样的事?
此致
拉斯穆斯
答案1
您想将其包装在批处理命令中。
伪代码:
For server in serverlist{
status = PsExec.exe - args
echo %server% status is %status%
}
然后运行 thisFile.bat >> logfile.txt 你应该得到一个漂亮的小列表,例如
Server 1 is Version: 7.5.0.2
Server 2 is Version: 7.5.0.2
Server 3 is
Server 4 is Version: 7.5.0.2 and so on