使用powerShell脚本停止网站

时间:2012-05-11 07:21:44

标签: iis powershell windows-server-2008

我有一个停止网站的脚本:

param($HostName = "localhost", $SiteName)

$server = $HostName
$siteName = $SiteName
$iis = [ADSI]"IIS://$server/W3SVC"
$site = $iis.psbase.children | where { $_.keyType -eq "IIsWebServer" -AND $_.ServerComment -eq $siteName}
$site.start()

# SIG # Begin signature block ...

但是当我在具有高安全性策略的服务器上运行脚本时,我收到此错误:

The following exception was thrown when trying to enumerate the collection: "Unknown error (0x80005000)".
At D:\DeploymentScripts\Common\StopSite.ps1:6 char:8
+ $site = <<<<  $iis.psbase.children | where { $_.keyType -eq "IIsWebServer" -AND $_.ServerComment -eq $siteName}
    + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
    + FullyQualifiedErrorId : ExceptionInGetEnumerator

据我所知,如果我无权访问IIS,可能会发生这种情况,但我以管理员身份运行脚本,是否应该授予我所需的访问权限?

网络管理模块是否提供更多访问权限? 我没有导入这个,因为我没有必要在其他服务器上执行此操作,如果我需要导入webadministration还有另一个问题,当我尝试我得到一个错误说WebAdministrationAliases.ps1没有数字签名..

我已经在其他服务器上测试过该脚本没有问题,但是这个上面提到了更严格的策略,并且不能更改策略。

我在带有IIS 7.5的Windows Server 2008 R2上运行它。

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

根据大卫的回答:

在Windows的最新版本(10、2016和更高版本)中,您需要导入IISAdministration而不是WebAdministration

Import-Module IISAdministration
Stop-WebSite 'Default Web Site'
Start-WebSite 'Default Web Site'

对于Windows和IIS的旧版本,您需要执行

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

了解更多:

1- https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/iisadministration-powershell-cmdlets

2- https://blogs.iis.net/iisteam/introducing-iisadministration-in-the-powershell-gallery