Como obter o caminho físico do site com appcmd

5

Estou tentando o seguinte appcmd commnad:

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;

Eu recebo a seguinte saída de erro quando estou tentando executar um comando no cmd.exe:

ERROR ( hresult:8007000d, message:The input contained an error element, which may indicate that the operationproducing the input has failed. )

Qual é o erro na configuração do aplicativo? Eu acho que estou misturando uma abordagem cmd e powershell, mas o script mencionado não funciona no PowerShell também. Uma maneira do PowerShell de obter o caminho pelo nome do site é preferível.

P.S. 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!

    
por Maxim V. Pavlov 04.10.2013 / 12:06

2 respostas

3

Pesquisei-me 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
    }
    
por 05.10.2013 / 18:25
1

Isso também funcionou para mim. executando cmd como admin.

appcmd list app /site.name:"Default Web Site" /path:"/" /xml | appcmd list vdir /in /text:physicalPath

source

    
por 05.10.2017 / 07:58