我尝试使用psexec远程运行多个命令。
我从本地计算机启动psexec,然后指定要连接的远程计算机。 我想将远程命令的输出存储在启动了psexec命令的本地PC上。
如果使用">"或">>"该文件是在远程PC上创建的,而不是在我的本地PC上创建的。
以下是我使用的代码:
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)
我做错了什么?
答案 0 :(得分:1)
这就是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 /?
答案 1 :(得分:0)
我编写了一个执行psexec多个实例并在本地保存输出的异步作业,请参阅Executing a batch file in a remote machine through PsExec了解详细信息