サイトを停止するためのスクリプトがあります。
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モジュールはより多くのアクセス権を与えますか?他のサーバーでこれを行う必要がなかったため、これをインポートしません。Web管理をインポートする必要がある場合、別の問題があります。試行すると、WebAdministrationAliases.ps1がデジタル署名されていないというエラーが表示されます。 。
私は他のサーバーで問題なくスクリプトをテストしましたが、これは上記のようにより厳格なポリシーを取得しており、ポリシーを変更するオプションではありません。
IIS7.5を搭載したWindowsServer2008R2でこれを実行しています。