我的服务器在Windows Server 2008,IIS 7上运行 我的客户端是Windows Server 2003或Windows XP。
我想远程启动/停止网站。
我很容易设法在我的客户端计算机上使用IIS 7管理器以交互方式进行(cf http://blogs.iis.net/bdela/archive/2007/10/08/remote-administration-managing-iis-7-rco-from-windows-xp-2k3-and-vista.aspx)
但我希望以非交互方式来实现,目标是将其编写为msbuild脚本的一部分。
我尝试了MSBuildExtensionPack,但只有在客户端站点上安装IIS7时它才有效。 我尝试了PowerShell cmdlet,但我必须在服务器上启动dcom(http://learn.iis.net/page.aspx/160/writing-powershell-commandlets-for-iis-70/)。
我该怎么办?
答案 0 :(得分:6)
如果您可以将客户端和服务器升级到PowerShell 2.0,则可以使用PowerShell远程处理和PowerShell 2.0的WebAdministration模块来执行此操作。首先,您需要在服务器PowerShell上启用远程处理(从提升的提示符开始):
PS> Set-ExecutionPolicy RemoteSigned
PS> Enable-PSRemoting -Force
然后在客户端计算机上执行以下命令:
PS> Invoke-Command servername {Import-Module WebAdministration; Stop-WebSite Foo}
答案 1 :(得分:0)
谢谢! Powershell 2.0做到了这一点。然而,你的命令似乎不起作用。
在服务器端我跑
PS> winrm quickconfig
在客户端我跑了
PS> Invoke-Command -computername servername -scriptblock {[system.reflection.assembly]::loadfrom("c:\windows\system32\inetsrv\microsoft.web.administration.dll");$server2 = New-object microsoft.web.administration.servermanager;$server2.Sites["Foo"].Stop()}
如:http://www.powershellcommunity.org/Default.aspx?tabid=55&EntryID=65
中所述