在远程 Windows 服务器上运行命令并将结果添加到文本文件

在远程 Windows 服务器上运行命令并将结果添加到文本文件

我正在尝试在许多服务器(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

相关内容