많은 웹 사이트 및 가상 디렉터리를 만들고 구성하기 위해 powershell 스크립트를 작성하고 있습니다. .NET Microsoft.Web.Administration 어셈블리를 사용하고 있습니다. 기본 웹 사이트에서 새 응용 프로그램을 만들고 새 가상 디렉터리를 추가하면 모든 응용 프로그램이 잘 작동합니다. 지금 내가하려는 것은 가상 디렉터리에 대한 인증 옵션을 설정하는 것입니다. 나는 PowerShell에서 다음을 수행 오전 :Powershell에서 프로그래밍 방식으로 IIS 구성 섹션 잠금 해제
"이 구성 섹션은이 경로에서 사용할 수 없습니다이 섹션은에 잠겨있을 때 발생합니다.
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$oIIS = new-object Microsoft.Web.Administration.ServerManager
$oWebSite = $oIIS.Sites["Default Web Site"]
$oApp = $oWebSite.Applications["/MyApp"]
$oConfig = $oApp.GetWebConfiguration()
$oAnonAuth = $oConfig.GetSection("system.webServer/security/authentication/anonymousAuthentication")
$oAnonAuth.SetAttributeValue("enabled", "False")
그러나, SetAttributeValue 명령은 나에게 다음과 같은 오류를 제공합니다 (overrideModeDefault = "Deny") 또는 overrideMode = "Deny"또는 기존 allowOverride = "false"를 사용하여 위치 태그에 의해 명시 적으로 설정됩니다.
다른 곳에서 읽은 내용은 다음과 같습니다. 재정의를 허용하도록 응용 프로그램의 XML 파일을 변경하는 몇 가지 제안. 저는 그렇게 할 필요가 없습니다. 프로그래밍 방식으로 구성을 잠금 해제하여 변경할 수있는 방법이 있습니까? 나는이 과정에 어떤 사용자 입력도 전혀 원하지 않는다.
어떤 도움을 주셔서 감사합니다, 알.
내가 찾고 있던 답을 찾을 수 -하지만 난 24 시간 동안 내 자신의 질문에 대답 할 수없는 새로운 사용자 인 ..
나는이 사이트에 아래의 코드를 발견 생각을하지만, 내 내가 페이지를 잃어 버렸기 때문에 컴퓨터가 재부팅되었습니다. 그러나 다음과 같이 작동합니다.
#
# Allow overriding of the security settings.
#
$oGlobalConfig = $oIIS.GetApplicationHostConfiguration()
$oConfig = $oGlobalConfig.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Default Web Site/mySite")
$oConfig.OverrideMode="Allow"
$oIIS.CommitChanges()
#
# Following the commit above, we need a new instance of the configuration object, which we can now
# modify.
#
$oGlobalConfig = $oIIS.GetApplicationHostConfiguration()
$oConfig = $oGlobalConfig.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Default Web Site/mySite")
$oConfig.SetAttributeValue("enabled", "False")
$oIIS.CommitChanges()
감사합니다. 대니얼 - 나는 그것들이 대체로 같다고 생각합니다. 관심이있는 부분으로 바로 넘어갑니다. –
나는 대답을 편집하고'$ mgr.CommitChanges ()'변경 사항이 실제로 적용되도록 - 코드는 호출 없이는 아무 것도 유지하지 않습니다. – Oliver