
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