2

我正在编写一个应用程序来帮助我将我的应用程序自动部署到我的 Windows Server 2008 机器上。作为这个过程的一部分,我需要从我的测试机器上远程启动和停止我的 2008 服务器上的 IIS 网站。

在我的 2008 机器范围内,我正在使用:

C:\Windows\System32\inetsrv\appcmd.exe stop site "MyWebsite"

如果我只是从命令提示符运行它,这个命令不起作用。返回的错误是:

错误(消息:W3SVC 服务不可用 - 请先尝试启动该服务。)

但是,如果我通过“以管理员身份运行”使用命令提示符,这确实有效。这很好,花花公子,但我需要能够从另一台机器上运行它。使用域帐户(被认为是管理员),从我的测试(非 2008)机器的角度来看,我的 PsExec commaned 变为以下内容:

"C:\Program Files\PSTools\psexec.exe" \\my2008machine -u domainuser -p password C:\Windows\System32\inetsrv\appcmd.exe stop site "MyWebsite"

PsExec 启动、运行和退出,提供与上面看到的相同的错误:就像我在 2008 机器上从命令提示符运行此命令一样 - 没有 - “以管理员身份运行”。

Windows 防火墙已关闭,我已按照其他地方的建议设置了“LocalAccountTokenFilterPolicy”,但我没有想法。知道如何解决这个问题或解决它吗?

4

2 回答 2

1

使用域管理员帐户(从 2003 R2 --> 2008 R2)在同一域中的计算机之间使用此问题已得到解决。这是通过在 Local Security Policy-->Local Policies-->Security Options 下更改 UAC 设置来实现的。我相信这是“在管理员批准模式下运行所有​​管理员”设置,需要重新启动。

但是,跨域边界时仍然存在一个突出问题:使用相同的域管理用户并针对 2008 R2 服务器,PsExec 返回“拒绝访问”错误。

于 2010-08-12T19:07:29.890 回答
1

我在尝试静默执行本地安装包时遇到了类似的问题(返回错误代码 1603),并且能够使用-h标志绕过它。从帮助:

如果目标系统是 Vista 或更高版本,则使用帐户的提升令牌运行进程(如果可用)。

使用 PsExec v1.98。目标服务器是 Server 2008 R2 的全新安装,启用了 UAC 并禁用了防火墙。

于 2011-02-03T23:28:28.553 回答