
다음 appcmd 명령을 시도하고 있습니다.
appcmd list app /site.name:"misechko.com.ua-DEV" /xml | appcmd list vdir /in /text:physicalPath
misechko.com.ua-DEV는 IIS의 올바른 사이트 이름입니다. appcmd가 경로에 등록되어 있습니다.
cmd.exe에서 명령을 실행하려고 하면 다음과 같은 오류 출력이 나타납니다.
ERROR( hresult:8007000d, 메시지: 입력에 입력을 생성하는 작업이 실패했음을 나타낼 수 있는 오류 요소가 포함되어 있습니다. )
앱 설정에 어떤 실수가 있나요? cmd와 powershell 접근 방식을 혼합하고 있는 것 같지만 위에서 언급한 스크립트는 PowerShell에서도 작동하지 않습니다. 웹 사이트 이름으로 경로를 가져오는 PowerShell 방법이 바람직합니다.
PS 역시 작동하지 않는 My PowerShell 대안:
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
$appcmd list app /site.name:"misechko.com.ua-DEV" /xml | $appcmd list vdir /in /text:physicalPath
감사해요!
답변1
스스로 조사하고 해결책을 찾았습니다.
function GetPhysicalPath ([String]$siteName) {
function Get-PipelineInput
{
end {
[xml]$appConfigXml = $input
return $appConfigXml.application.virtualDirectory.physicalPath
}
}
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
return & $appCmd list app /site.name:"$siteName" /config | Get-PipelineInput
}
답변2
이것은 나에게도 효과가 있었습니다. cmd를 관리자 권한으로 실행합니다.
appcmd list app /site.name:"Default Web Site" /path:"/" /xml | appcmd list vdir /in /text:physicalPath