Как получить физический путь к сайту с помощью 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 зарегистрирован в path;

При попытке выполнить команду в cmd.exe я получаю следующую ошибку:

ОШИБКА ( hresult: 8007000d, message: Входные данные содержали элемент ошибки, который может указывать на то, что операция, создающая входные данные, завершилась неудачей. )

В чем ошибка в настройке приложения? Думаю, я смешиваю подход cmd и powershell, но вышеупомянутый скрипт не работает и в PowerShell. Предпочтительнее способ PowerShell для получения пути по имени веб-сайта.

P.S. Моя альтернатива 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

источник

Связанный контент