
Estou tentando o seguinte comando appcmd:
appcmd list app /site.name:"misechko.com.ua-DEV" /xml | appcmd list vdir /in /text:physicalPath
misechko.com.ua-DEV é um nome de site correto no IIS. appcmd está registrado no caminho;
Recebo a seguinte saída de erro quando tento executar um comando em cmd.exe:
ERRO (hresult:8007000d, mensagem:A entrada continha um elemento de erro, que pode indicar que a operação que produziu a entrada falhou.)
Qual é o erro na configuração do aplicativo? Acho que estou misturando uma abordagem cmd e powershell, mas o script mencionado também não funciona no PowerShell. É preferível uma maneira do PowerShell de obter o caminho pelo nome do site.
PS Minha alternativa do PowerShell que também não funciona:
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
$appcmd list app /site.name:"misechko.com.ua-DEV" /xml | $appcmd list vdir /in /text:physicalPath
Obrigado!
Responder1
Pesquisei sozinho e encontrei uma solução:
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
}
Responder2
Isso também funcionou para mim. executando cmd como administrador.
appcmd list app /site.name:"Default Web Site" /path:"/" /xml | appcmd list vdir /in /text:physicalPath