
어떻게 확인할 수 있나요?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 구성입니다.