PsExec 和 Windows 2008 R2:“访问被拒绝”

PsExec 和 Windows 2008 R2:“访问被拒绝”

这是我的情况:

我正在尝试从本地计算机远程启动和停止服务器上的 IIS 7.0 站点,使用执行程序

一些要点:

  • 本地机器运行Windows Vista
  • 服务器运行Windows 2008 R2
  • 每台机器都运行不同的领域
  • 有一个单向信任从我的本地机器的域到我的服务器的域。
  • PsExec 是使用域管理员帐户,其被验证为服务器计算机上的本地管理员。
  • 本地机器通过别名引用服务器;它不使用服务器的真实名称。

我正在使用以下命令:

"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 2003 R2) 在服务器的域中。(域内
  • 此命令也有效当针对另一台运行的机器执行时Windows 2003 R2来自我的本地机器;它们两个位于不同的域中。(跨域
  • 使用相同的 PsExec 命令,但代替应用程序命令提示符失败。
  • 该命令已从命令提示符使用“以管理员身份运行”运行。
  • 注册表项禁用严格名称检查已在服务器上设置允许使用别名。
  • 注册表项LocalAccountTokenFilterPolicy = 1已在服务器和本地机器上设置。
  • 服务器上未运行 Windows 防火墙。
  • 本地计算机上的 UAC 已禁用。
  • UAC 在服务器上处于活动状态。
  • UAC 在服务器上禁用了“管理员批准模式”;这允许命令在域内(而不是域间)工作。

这似乎表明Windows 2008 R2 特有的问题这是与安全设置相关的,可能与域或管理权限有关。但是,我没有主意了。如果您有任何建议,我将不胜感激!

答案1

我花了几个小时才找到一种在两台 Windows 7 计算机之间使用非管理员用户启动 PsExec 的有效方法...禁用 UAC(EnableLUA=0、ConsentPromptBehaviorAdmin=0、LocalAccountTokenFilterPolicy=1)不起作用,关闭防火墙也不起作用……

在这里我找到了可行的方法 - 感谢JelmerS:(信息来自PSexec 未使用提供的用户名和密码连接到计算机

这是因为 psexec 仍会尝试使用您的本地凭据访问 ADMIN$ 共享,然后再以其他用户身份执行您的命令。根据此线程,您可以在执行 psexec 之前缓存凭据: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

谨致问候,彼得

答案2

您是否在 Vista 工作站上从提升的命令提示符运行 PSEXEC?您是否设置了 LocalAccountTokenFilterPolicy=1?请参阅常见问题解答:常见的 PSTools 问题

答案3

我没有类似的环境可供测试,但我可以推荐的是:在客户端域上,设置批处理脚本 (.bat),为每个要重新启动的网站设置一个。(我将它们称为“ restart_site-sitename.bat”。)为每个域创建一个,并将它们全部保存到该域的管理服务器上的目录中(我将 sysad 工具放在那里,如果我的笔记本电脑出现问题,我可以在那里管理所有内容),包括该目录中的 PSExec。

psexec.exe \\(server-alias) C:\Windows\System32\inetsrv\appcmd.exe stop site "WebsiteName"

现在尝试运行 psexec 到该管理服务器,并调用其中一个批处理文件。

"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"

相关内容