2

サイトを停止するためのスクリプトがあります。

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でこれを実行しています。

4

2 に答える 2

9
Import-Module WebAdministration
Stop-WebSite 'Default Web Site'
Start-WebSite 'Default Web Site'
于 2012-05-11T08:19:09.643 に答える