2010-09-13 1 views
2

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

Я хочу удаленно запускать/останавливать сайты.
мне легко удалось это сделать в интерактивном режиме с помощью 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/).

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

ответ

6

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

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

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

PS> Invoke-Command servername {Import-Module WebAdministration; Stop-WebSite Foo} 
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