Come ottenere il percorso fisico del sito con appcmd


5

Sto provando il seguente comando appcmd:

appcmd list app /site.name:"misechko.com.ua-DEV" /xml | appcmd list vdir /in /text:physicalPath

misechko.com.ua-DEV è un nome di sito corretto in IIS. appcmd è registrato nel percorso;

Ottengo il seguente errore quando tento di eseguire un comando in cmd.exe:

ERRORE (hresult: 8007000d, messaggio: l'input contiene un errore   elemento, che può indicare che l'operazione di produzione dell'input ha   fallito. )

Qual è l'errore nella configurazione dell'app? Immagino di mischiare un approccio cmd e powershell, ma lo script abocementioned non funziona neanche in PowerShell. È preferibile un modo PowerShell per ottenere il percorso in base al nome del sito web.

Post scriptum La mia alternativa PowerShell che non funziona anche:

$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"

$appcmd list app /site.name:"misechko.com.ua-DEV" /xml | $appcmd list vdir /in /text:physicalPath

Grazie!

Risposte:


3

Ricercato me stesso e trovato una soluzione:

     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
    }

Bella soluzione Bisogna fare attenzione però, da allora appcmd list app ... restituirà tutte le directory virtuali come fratelli, cioè interromperà il parser XML. Se sei interessato solo alla radice del sito, meglio usare "vdir" $appCmd list vdir "$siteName/" /config (notare la barra finale sul nome del sito), e quindi modificare il percorso xml per adattarsi a i.e. $appConfigXml.virtualDirectory.physicalPath
Dave Transom

2

Questo ha funzionato anche per me. eseguendo cmd come amministratore.

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

fonte

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.