2012-01-25 27 views
1

ファイルシステムにコードがまだデプロイされていないWebアプリケーションでIIS7.5を設定するためにpowershellを使用する必要があります。私はこのすべてをAPPHOSTレベルで行うことができるようにしたいと考えています。 (Powershell> AppCmdの使用についての最下部の注記)。APPHOSTでAppCmdを使用してコンフィギュレーションをリストアする

私はすべての値を適切に設定することができますが、やや勤勉ですが、設定後に値を適切に設定して検証することもできます。

ここにシナリオがあります: この値はAppCmdを使って設定できますので、設定はAPPHOSTレベルで/ Commit: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 
.) 

注:私はすべてのPowerShellでこれを行うことを好むだろうAppCmdを使う代わりにもし誰かがPowershellの中からWebApplicationのanonymousAuthenticationセクションのAPPHOST設定を変更するための構文を持っていれば(Powershellの中からGet-WebConfigurationはWebApp web.configのみを使用しているようです)、これはとても素晴らしいものになります。ここで

答えて

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() 
+0

あなたはServerManagerのなしでデスクトップにしている場合は、このような何かをしようとする必要がある場合があります https://github.com/jefflomax/configure-iis -webapps-powershell –

+0

@AUSTX_RJL - デスクトップでServerManagerを使用できないのはなぜですか? – Kev

関連する問題