使用psexec @file参数执行cmd /c hostname远程命令失败求助
解决PsExec使用@file参数时无法自动执行命令的问题
这问题我之前踩过好几次坑,核心原因就是PsExec的参数顺序搞反了!
你现在用的命令是:
psexec @"c:\temp\hostname.txt" -e cmd /c hostname
当使用@file参数批量指定主机时,PsExec会把@file之后的所有参数都当成是要传递给远程交互式CMD的输入内容,而不是让远程CMD自动执行的命令——这就导致你只会进入远程机器的CMD界面,必须手动敲命令才行。
正确的命令写法
把要执行的命令和相关参数(比如-e)放在@file参数之前,这样PsExec才会先识别出要执行的命令,再遍历文件里的主机逐一执行:
psexec -e cmd /c hostname @"c:\temp\hostname.txt"
额外注意事项
- 确保
hostname.txt里每一行只写一个主机名,不要有多余空格、空行或者特殊字符,否则PsExec可能无法正确解析主机列表 - 如果需要指定用户名/密码这类权限参数,同样要把它们放在
@file前面,比如:psexec -u DOMAIN\admin -p YourPass123 -e cmd /c hostname @"c:\temp\hostname.txt" - 测试时可以先在文件里只放一个确定能连通的主机名,验证命令正常执行后再批量添加其他主机
内容的提问来源于stack exchange,提问作者pk.
相关产品推荐
相关产品推荐

