Question Comment obtenir le chemin physique du site avec appcmd


Je suis en train d'essayer la commande appcmd suivante:

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

misechko.com.ua-DEV est un nom de site correct dans IIS. appcmd est enregistré dans le chemin;

J'obtiens la sortie d'erreur suivante lorsque j'essaie d'exécuter une commande dans cmd.exe:

ERROR (hresult: 8007000d, message: L'entrée contenait une erreur   élément, ce qui peut indiquer que l'opération produisant l'entrée a   échoué. )

Quelle est l'erreur dans la configuration de l'application? Je suppose que je mélange une approche cmd et powershell, mais le script susmentionné ne fonctionne pas non plus dans PowerShell. Une méthode PowerShell pour obtenir le chemin d'accès par nom de site Web est préférable.

P.S. Mon alternative PowerShell qui ne fonctionne pas non plus:

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

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

Merci!


5
2017-10-04 10:06


origine




Réponses:


J'ai moi-même recherché et trouvé une solution:

     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
    }

3
2017-10-05 16:25



Belle solution. Faut faire attention cependant, depuis appcmd list app ... renverra tous les répertoires virtuels en tant que frères, c’est-à-dire qu’ils casseront l’analyseur XML. Si vous êtes seulement intéressé par la racine du site, mieux vaut utiliser "vdir" $appCmd list vdir "$siteName/" /config (notez la barre oblique finale sur le nom du site), puis ajustez le chemin du fichier XML pour l'adapter à vos besoins. $appConfigXml.virtualDirectory.physicalPath - Dave Transom


Cela a aussi fonctionné pour moi. exécuter cmd en tant qu'administrateur.

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

la source


1
2017-10-05 05:58