这是我的场景:
我试图从我的本地机器上使用PsExec远程启动和停止服务器上的IIS 7.0站点。
一些重要的观点:
我正在使用该命令:
"C:\Program Files\PSTools\psexec.exe" \\(server-alias) -u (server-domain)\(domain-admin) -p (password) C:\Windows\System32\inetsrv\appcmd.exe stop site "Default Web Site"
这将返回错误:
PsExec v1.94 - Execute processes remotely Copyright (C) 2001-2008 Mark Russinovich Sysinternals - www.sysinternals.com Could not start PsExec service on (server-alias): Access is denied.
一些重要的故障排除说明:
这似乎表明这是一个与Windows 2008 R2相关的特定问题 ,与安全设置相关,可能是根据域或pipe理权限。 但是,我没有想法。 任何build议,你可能会非常感激!
我花了几个小时find一个工作方式PsExec之间的Windows 7计算机与非pipe理员用户启动PsExec …禁用UAC(EnableLUA = 0,ConsentPromptBehaviorAdmin = 0,LocalAccountTokenFilterPolicy = 1)不起作用,closures防火墙不行…
在这里我find了工作方式 – 谢谢JelmerS:(来自PSexec的信息没有使用提供的用户名和密码连接到机器上 )
这是因为psexec仍然尝试使用本地凭证访问ADMIN $共享,然后以另一个用户身份执行命令。 根据此线程,您可以在执行psexec之前caching凭据:cmdkey.exe / add:MACHINE_NAME_HERE / user:MACHINE_NAME_HERE \ Administrator / pass:PASSWORD_HERE psexec.exe \ MACHINE_NAME_HERE -i notepad cmdkey.exe / delete:MACHINE_NAME_HERE
最好的问候,彼得
你是否在Vista工作站上用提升的命令提示符运行PSEXEC? 你有没有设置LocalAccountTokenFilterPolicy = 1? 请参阅常见问题解答:常见PSTools问题
我没有类似的环境进行testing,但是我可以推荐的是:在客户端域上,设置批处理脚本(.bat),为每个要重新启动的网站设置一个。 (我将称它们为“ restart_site-sitename.bat ”。)为每个域创build一个,并将其全部保存到该域中的pipe理服务器上的一个目录中(我将sysad工具放在这里,发生在我的笔记本电脑上),包括该目录中的PSExec。
psexec.exe \\(server-alias) C:\Windows\System32\inetsrv\appcmd.exe stop site "WebsiteName"
现在尝试运行psexec到该pipe理服务器,而是调用其中一个batch file。
"C:\Program Files\PSTools\psexec.exe" \\(server-alias) -u (server-domain)\(domain-admin) -p (password) C:path\to\psexec_and_scripts\restart_site-sitename.bat"