代码之家  ›  专栏  ›  技术社区  ›  Benjamin Baumann

为IIS 7编写远程控制脚本

  •  2
  • Benjamin Baumann  · 技术社区  · 15 年前

    我的服务器正在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/ )

    我能做什么?

    2 回复  |  直到 15 年前
        1
  •  6
  •   Community Mohan Dere    15 年前

    如果可以将客户端和服务器升级到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}
    
        2
  •  0
  •   Benjamin Baumann    15 年前

    谢谢!PowerShell2.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

    推荐文章