我正在尝试使用 psexec.exe 在 Windows Server 2008 上运行批处理脚本。我无法使用纯文本密码,因此我使用“-s”标志,而不提供用户名/密码。我收到以下错误:
Logon failure: unknown user name or bad password.
我正在运行的命令是:
> "E:\Deploy\psexec" \\whichever-server.com cmd /c net stop "MyService"
现在,这个确切的过程在我们旧的 Windows Server 2003 服务器上运行良好,但我们被迫进行迁移。过去一天我一直在阅读 psexec.exe 文档,到目前为止还没有发现任何可以指出此问题出现在 Windows Server 2008 上的原因的信息——任何帮助都将不胜感激。
答案1
你不需要-s如果您想要的只是阻止身份验证提示,则标记。PSExec 使用 RPC 在远程计算机上安装服务并调用此服务来执行命名的命令。
指定“-s”仅表示指定命令的执行上下文将是内置的 SYSTEM / LocalSystem 帐户上下文。如果不指定此标志,则命令将在调用用户的上下文(或使用 -U 参数指定的用户帐户)中运行。
如果您需要远程运行命令而不指定凭据,则必须确保 a) 从远程计算机的角度来看,您启动“psexec”的用户是有效帐户,并且 b) 它被授权通过 RPC 安装服务并运行您想要运行的任何内容。“未知用户名或密码错误”错误引起人们对 a) 未遵守的怀疑。检查运行 psexec 的用户是否可以访问远程计算机的共享,作为快速测试。