2010-04-25 57 views
41

我在Windows 7開發機器上的IIS7中配置了多個站點,以便在同一端口上運行,並且通常每次只運行一個站點,具體取決於我所從事的工作。我希望能夠從PowerShell啓動和停止我的開發站點,而不是打開IIS管理器。有沒有人有一個很好的資源指向我正確的方向或腳本已經完成了這一點?如何使用PowerShell在IIS中停止和啓動單個網站?

+0

可能有WMI IIS網站的類。 – zneak 2010-04-25 22:14:51

+0

我想我會通過提供以下鏈接來回答我自己的問題。 http://technet.microsoft.com/en-us/library/ee790599.aspx – 2010-04-25 22:19:10

回答

74

只是爲了未來的快速參考,命令是:

Import-Module WebAdministration 
Stop-WebSite 'Default Web Site' 
Start-WebSite 'Default Web Site' 
+1

我是一個完整的PowerShell noob。我需要在您發佈的代碼之前導入任何內容嗎?我嘗試的是啓動PowerShell,然後鍵入您發佈的第一個cmd,PowerShell拋出一個錯誤。 – 2010-04-29 03:02:53

+1

閱讀例外後,它說我不需要導入Web管理,但接下來它告訴我,Start-Website'SiteName'不是公認的cmdlet。 – 2010-04-29 03:04:30

+0

你從哪裏得到模塊? – cpoDesign 2013-09-26 10:48:55

2

要訪問系統模塊,Powershell的需要是這樣運行的:

[path]\powershell.exe -NoExit -ImportSystemModules 

我發現上面的這個iis forum

10

添加到Keith的答案,您可以使用Invoke-Command遠程執行此操作。

Import-Module WebAdministration 
$siteName = "Default Web Site" 
$serverName = "name" 
$block = {Stop-WebSite $args[0]; Start-WebSite $args[0]}; 
$session = New-PSSession -ComputerName $serverName 
Invoke-Command -Session $session -ScriptBlock $block -ArgumentList $siteName 
+0

完美的作品! – hdoghmen 2017-07-13 13:03:09

+0

它的工作原理,但有人可以解釋$ args [0]部分? Thx – ToastMan 2017-12-13 15:31:58

+0

@ToastMan $ args是腳本塊輸入參數數組。 [文件爲$ args和其他自動變量](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_automatic_variables?view=powershell-5.1) – Tim 2017-12-14 01:33:33

1

我發現下面的遠程服務器上停止單個網站的工作:

Invoke-Command -Computername $servername -Scriptblock { 
    (Import-Module WebAdministration); 
    Stop-Website -Name "WebsiteName"; 
    Stop-Website -Name "AnotherWebsiteName" 
} 

我有一些錯誤的上面,直到Import-Module放入()

+0

太棒了。它很棒!我自己測試了確切的代碼,沒有括號,它不工作,很棒的發現! – ToastMan 2017-12-13 15:33:39

相關問題