appcmd를 사용하여 사이트 실제 경로를 얻는 방법

appcmd를 사용하여 사이트 실제 경로를 얻는 방법

다음 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

원천

관련 정보