1

ファイル システムにまだコードが展開されていない (おそらくまったく、古い/壊れた web.config が存在する) WebApplications で IIS7.5 を構成するために、powershell を使用する必要があります。APPHOST レベルでこれをすべて実行できるようにしたいと考えています。(Powershell > AppCmd の使用に関する下部のメモ)。

私はすべての値を適切に設定できますが、やや勤勉であるため、設定後に値を取得して、値が適切に設定されたことを検証することも好きです。

シナリオは次のとおりです。AppCmd を使用してこの値を設定できるため、設定は /Commit:APPHOST フラグを使用して APPHOST レベルで適用されます。ただし、APPHOSTレベルでのみ値を読み取る方法が見つかりませんでした。

コードの設定が成功しました:

C:\Windows\System32\inetsrv\appcmd.exe set config "webSiteName/webAppName" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost

ただし、AppCmd (または Powershell) を使用して値を読み取る方法が見つかりません。次の AppCmd を実行すると、フォルダー内の既存の web.config が破損しているため、エラーが返されます (特定のエラーは重要ではありません。 ApplicationHost.config/APPHOST の代わりに WebApp の web.config):

C:\Windows\System32\inetsrv\appcmd.exe list config "MACHINE/WEBROOT/APPHOST/webSiteName/webAppName" -section:system.webServer/security/authentication/anonymousAuthentication
ERROR ( message:Configuration error
Filename: \\?\c:\inetpub\wwwroot\webSiteName\webAppName\web.config
Line Number: 254
Description: The configuration section 'system.runtime.caching' cannot be read because it is missing a section declaration
. )

注: AppCmd を使用する代わりに、Powershell でこれをすべて実行することをお勧めします。そのため、Powershell 内から、Web サイトの下にある WebApplication の anonymousAuthentication セクションの APPHOST 設定を変更するための構文を誰かが持っている場合 (Get-WebConfiguration はWebApp web.config を使用してください)、それは非常に素晴らしく、非常に高く評価されます!

4

1 に答える 1

4

PowerShell でこれを行う方法は次のとおりです。

[Reflection.Assembly]::Load(
"Microsoft.Web.Administration, Version=7.0.0.0, 
Culture=Neutral, PublicKeyToken=31bf3856ad364e35") > $null

$serverManager = New-Object Microsoft.Web.Administration.ServerManager
$config = $serverManager.GetApplicationHostConfiguration()
$anonymousAuthenticationSection = $config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "simpleasp.net")
Write-Host "Current value: " $anonymousAuthenticationSection["enabled"]

# Now set new value
$anonymousAuthenticationSection["enabled"] = $true

$serverManager.CommitChanges()
于 2012-01-26T00:46:24.020 に答える