Psexec - 运行 远程命令并将输出保存到本地文件

Psexec - run command remotely and save output to local file

我正在尝试 运行 使用 psexec 远程执行多个命令。

我从本地计算机启动 psexec,然后指定要连接的远程计算机。 我想将远程命令的输出存储在启动 psexec 命令的本地电脑上。

如果使用“>”或“>>”,文件将在远程电脑上创建,而不是在我的本地电脑上创建。

这是我使用的代码:

cmd /c "c:\windows\system32\psexec.exe" \192.168.0.2 -accepteula -u test -p test -s cmd /k (date /t) ^& (time /t) ^& (hostname) ^& (wmic csproduct get name, identifyingnumber) ^& (net statistics workstation) ^& (wmic LOGICALDISK LIST BRIEF) ^& (echo.) ^& (net use) ^& (tasklist)'+' ^& (echo.) ^& (echo. LISTARE CONTINUT FISIER HOSTS:) ^& (type c:\windows\system32\drivers\etc\hosts)

我做错了什么?

这就是 PSExec 在另一台计算机上的工作方式。 WMIC 可以自己做你想做的事。

wmic /node:127.0.0.1 process get /format:list

wmic /node:@C:\folder\computerlist.txt process get /format:list

computerlist.txt 看起来像这样

127.0.0.1
MyComputerName
168.0.0.1

因此您可以混合匹配名称或 IP 地址。

wmic /node:127.0.0.1 /output:C:\folder\output.txt process get /format:list

虽然 wmic 确实做重定向。使用 Append 而不是 output 来追加。

参见 wmic /?wmic /output /?wmic /format /?

wmic 还可以 运行 程序在其他计算机上不可见。

wmic /node:127.0.0.1 process call create notepad.exe

因为 127.0.0.1 是本地地址,您会看到记事本,但不会在远程计算机上看到它。参见 wmic process call create /?

我编写了一个执行多个 psexec 实例并在本地保存输出的异步作业,有关详细信息,请参阅