Powershell에서 IIS 앱에 대한 인증 사용
다음 명령을 사용하여 IIS 웹 사이트에 대한 설정 방법을 알고 있습니다.
Set-WebConfigurationProperty -filter "/system.webServer/security/authentication/windowsAuthentication" -name enabled -value true -PSPath "IIS:\" -location $siteName
하지만 저는 그 웹사이트 안에 있는 응용 프로그램들을 위해 그것을 설정하고 싶습니다.예를 들어, 저는 "MySite"라는 이름의 IIS 웹 사이트를 가지고 있으며, 그 안에는 두 개의 응용 프로그램이 있습니다.하나는 Windows 인증을 사용하고 다른 하나는 사용하지 않도록 설정합니다.따라서 사이트 수준에서 활성화하는 것은 둘 다에 대해 활성화될 것이며, 이는 제가 원하지 않는 것입니다.
저는 잠긴 섹션을 처리하는 문제가 있었는데 수락된 답변은 이 문제를 해결하기 위해 GUI를 여는 것을 제안합니다. 처음에 PowerShell로 피하려고 합니다.
단답형
윈도우즈 인증 사용 및 익명 인증 사용 안 함
$iisSiteName = "Default Web Site"
$iisAppName = "MyApp"
Write-Host Disable anonymous authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/anonymousAuthentication' -Name 'enabled' -Value 'false' -PSPath 'IIS:\' -Location "$iisSiteName/$iisAppName"
Write-Host Enable windows authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/windowsAuthentication' -Name 'enabled' -Value 'true' -PSPath 'IIS:\' -Location "$iisSiteName/$iisAppName"
잠긴 횡단면 처리
IIS 설명서에 나와 있는 대로:
인증 섹션은 일반적으로 잠겨 있습니다. 즉, web.config 파일에 쓸 수 없고 대신 중앙 애플리케이션 host.config 파일에 써야 합니다.
우리는 사용해야 합니다.-PSPath
그리고.-Location
매개 변수
Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp
따로따로 할 필요는 없습니다.-PSPath
그리고.-Location
매개 변수다음과 같이 결합할 수 있습니다.
-PSPath "IIS:\Sites\$SiteName\$AppName"
따라서 실제 명령은 다음과 같습니다.
Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath "IIS:\Sites\$SiteName\$AppName"
다음 오류가 발생할 수 있습니다.
Set-WebConfigurationProperty : 이 경로에서 이 구성 섹션을 사용할 수 없습니다.이 문제는 섹션이 상위 수준에서 잠겨 있을 때 발생합니다.잠금은 기본적으로(ModeDefault="Deny" 재정의함) 또는 overrideMode="Deny" 또는 기존 allowOverride="false"로 위치 태그에 의해 명시적으로 설정됩니다.
ServerFault에서 패닝하는 Tom은 여기에 해결책을 제공했습니다.나는 여기서 그의 단계를 반복했습니다.
- IIS 관리자 열기
- 왼쪽 트리에서 서버 이름 클릭
- 오른쪽 창의 관리 섹션에서 구성 편집기를 두 번 클릭합니다.
- 맨 위에서 횡단 시스템을 선택합니다.웹 서버/보안/인증/익명인증
- 오른쪽 창에서 섹션 잠금 해제를 클릭합니다.
- 맨 위에서 횡단 시스템을 선택합니다.웹 서버/보안/인증/창인증
- 오른쪽 창에서 섹션 잠금 해제를 클릭합니다.
언급URL : https://stackoverflow.com/questions/24535200/enable-authentication-for-iis-app-in-powershell
'programing' 카테고리의 다른 글
지원되지 않는데 MariaDB ColumnStore에서 순환 조인을 수행할 수 있는 방법이 있습니까? (0) | 2023.08.14 |
---|---|
Junit 5(스프링 부트 포함):@ExtendWithSpring 또는 Mockito를 언제 사용해야 합니까? (0) | 2023.08.14 |
프로필이 활성화되지 않은 경우 빈 정의 포함 (0) | 2023.08.14 |
JS 파일에서 jQuery를 추가하는 방법 (0) | 2023.08.14 |
부트스트랩 드롭다운 하위 메뉴 누락 (0) | 2023.08.14 |