如何使用 appcmd 获取站点物理路径

如何使用 appcmd 获取站点物理路径

我正在尝试以下 appcmd 命令:

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

misechko.com.ua-DEV 是 IIS 中的正确站点名称。appcmd 已在路径中注册;

当我尝试在 cmd.exe 中执行命令时收到以下错误输出:

错误(hresult:8007000d,消息:输入包含错误元素,这可能表明产生输入的操作失败。)

应用程序设置中有什么错误?我想我混合使用了 cmd 和 powershell 方法,但上述脚本在 PowerShell 中也不起作用。最好使用 PowerShell 通过网站名称获取路径的方法。

PS:我的 PowerShell 替代方案也不起作用:

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

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

谢谢!

答案1

经过自己研究并找到了解决方案:

     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
    }

答案2

这对我也有用。以管理员身份运行 cmd。

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

来源

相关内容