我有一个停止网站的脚本:
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上运行它。
答案 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'
了解更多:
2- https://blogs.iis.net/iisteam/introducing-iisadministration-in-the-powershell-gallery