Powershell을 사용하여 IIS 기본 문서 순서를 어떻게 변경할 수 있나요?

Powershell을 사용하여 IIS 기본 문서 순서를 어떻게 변경할 수 있나요?

어떻게 확인할 수 있나요?default.aspx내 IIS 웹 사이트의 첫 번째 기본 문서는 무엇입니까?

나는 시도했다:

Add-WebConfiguration //defaultDocument/files "IIS:\sites\Default Web Site\MyWebSite" -atIndex 0 -Value @{value="Default.aspx"}

하지만 만약에default.aspx이미 불평 목록에 있습니다

Add-WebConfiguration : Filename: 
Error: Cannot add duplicate collection entry of type 'add' with unique key attribute 'value' set to 'Default.aspx'

필요한 경우 어떻게 추가하고 목록에 없으면 목록의 맨 위로 이동할 수 있나요?

답변1

트릭은 'default.aspx'가 이미 목록에 있는 경우 제거하는 것입니다.

$filter = "system.webserver/defaultdocument/files"
$site = "IIS:\sites\Default Web Site\MyWebSite"
$file = "default.aspx"

if ((Get-WebConfiguration $filter/* "$site" | where {$_.value -eq $file}).length -eq 1)
{
   Remove-WebconfigurationProperty $filter "$site" -name collection -AtElement @{value=$file}
}

Add-WebConfiguration $filter "$site" -atIndex 0 -Value @{value=$file}

먼저 default.aspx가 있는지 확인하고, 발견되면 제거한 다음 이미 했던 것처럼 맨 위에 다시 추가합니다.

답변2

유용할 수도 있는 분들을 위해: 저는 default.aspx웹 서버의 첫 번째 기본 문서가 되도록 IIS를 구성하고 싶었습니다. 원하는 경우 스크립트는 다음과 같습니다.

#requires -RunAsAdministrator

$file = "default.aspx"
$baseFilter = "/system.webServer/defaultDocument/files"

$filter = "{0}/add[@value='{1}']" -f $baseFilter,$file
$fileExists = $null -ne (Get-WebConfigurationProperty $filter -Name ".")
$updateConfig = -not $fileExists
if ( $fileExists ) {
  $firstValue = Get-WebConfiguration "$baseFilter/*" |
    Select-Object -ExpandProperty value -First 1
  $updateConfig = $firstValue -ne $file
  if ( $updateConfig ) {
    Clear-WebConfiguration $filter -Verbose
  }
}
if ( $updateConfig ) {
  Add-WebConfiguration $baseFilter -AtIndex 0 -Value @{value = $file} -Verbose
}

스크립트는 default.aspx이 기본 문서로 설정되어 있는지 확인합니다. 기본 문서 인 경우 default.aspx목록의 첫 번째 문서인지 확인합니다. default.aspx목록에 있지만 첫 번째가 아닌 경우 스크립트는 이를 제거합니다. default.aspx이(가) 기본 문서로 설정되지 않았거나 목록의 첫 번째 문서가 아닌 경우 스크립트는 해당 문서를 목록의 첫 번째 문서로 추가합니다.

위 스크립트는 서버 노드를 클릭하고 Default Document오른쪽 창을 두 번 클릭한 후 default.aspx첫 번째 위치로 이동(또는 목록에 없는 경우 첫 번째 위치에 추가)하는 것과 동일한 IIS GUI 구성입니다.

관련 정보