
Estoy probando el siguiente comando appcmd:
appcmd list app /site.name:"misechko.com.ua-DEV" /xml | appcmd list vdir /in /text:physicalPath
misechko.com.ua-DEV es un nombre de sitio correcto en IIS. appcmd está registrado en la ruta;
Recibo el siguiente error cuando intento ejecutar un comando en cmd.exe:
ERROR (hresult:8007000d, mensaje:La entrada contenía un elemento de error, que puede indicar que la operación que produjo la entrada falló).
¿Cuál es el error en la configuración de la aplicación? Supongo que estoy mezclando un enfoque de cmd y powershell, pero el script mencionado anteriormente tampoco funciona en PowerShell. Es preferible utilizar PowerShell para obtener la ruta por nombre del sitio web.
PS Mi alternativa de PowerShell que tampoco funciona:
$appCmd = "$Env:SystemRoot\system32\inetsrv\appcmd.exe"
$appcmd list app /site.name:"misechko.com.ua-DEV" /xml | $appcmd list vdir /in /text:physicalPath
¡Gracias!
Respuesta1
Investigué por mi cuenta y encontré una solución:
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
}
Respuesta2
Esto también funcionó para mí. ejecutando cmd como administrador.
appcmd list app /site.name:"Default Web Site" /path:"/" /xml | appcmd list vdir /in /text:physicalPath