Сценарий дистанционного управления для IIS 7 - PullRequest
2 голосов
/ 13 сентября 2010

Мой сервер работает на Windows Server 2008, IIS 7.
Мой клиент - Windows Server 2003 или Windows XP.

Я хочу запускать / останавливать сайты удаленно.
Мне легко удалось сделать это в интерактивном режиме с помощью диспетчера IIS 7 на клиентских компьютерах (см. 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, но мне нужно запустить dcom на сервере (http://learn.iis.net/page.aspx/160/writing-powershell-commandlets-for-iis-70/).

Что я могу сделать?

Ответы [ 2 ]

6 голосов
/ 13 сентября 2010

Если вы можете обновить и клиент, и сервер до PowerShell 2.0, вы можете использовать PowerShell Remoting вместе с модулем WebSministration PowerShell 2.0 для этого.Сначала вам нужно включить удаленное взаимодействие на сервере PowerShell следующим образом (из приглашения с повышенными правами):

PS> Set-ExecutionPolicy RemoteSigned
PS> Enable-PSRemoting -Force

Затем на клиентском компьютере выполните следующее:

PS> Invoke-Command servername {Import-Module WebAdministration; Stop-WebSite Foo}
0 голосов
/ 14 сентября 2010

Спасибо!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

...