So erhalten Sie den physischen Sitepfad mit appcmd

So erhalten Sie den physischen Sitepfad mit appcmd

Ich versuche den folgenden Appcmd-Befehl:

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

misechko.com.ua-DEV ist ein korrekter Site-Name in IIS. appcmd ist im Pfad registriert;

Ich erhalte die folgende Fehlerausgabe, wenn ich versuche, einen Befehl in cmd.exe auszuführen:

FEHLER (hresult:8007000d, Meldung:Die Eingabe enthielt ein Fehlerelement, was darauf hinweisen kann, dass der Vorgang, der die Eingabe erzeugt hat, fehlgeschlagen ist.)

Was ist der Fehler beim App-Setup? Ich vermute, ich mische einen cmd- und einen Powershell-Ansatz, aber das oben erwähnte Skript funktioniert auch in PowerShell nicht. Eine PowerShell-Methode zum Abrufen des Pfads anhand des Websitenamens ist vorzuziehen.

PS: Meine PowerShell-Alternative, die auch nicht funktioniert:

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

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

Danke!

Antwort1

Habe selbst recherchiert und eine Lösung gefunden:

     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
    }

Antwort2

Das hat bei mir auch funktioniert. cmd als Administrator ausführen.

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

Quelle

verwandte Informationen