
Я пробую следующую команду 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