如何通过命令行更改IIS6中虚拟目录的物理路径?

如何通过命令行更改IIS6中虚拟目录的物理路径?

我正在寻找一种方法来更改 IIS6 中虚拟目录的物理路径。基本上,此 IIS7 调用的 IIS6 版本

c:\Windows\System32\inetsrv\appcmd set VDIR 
    "Default Web Site/MySite/" "/physicalPath:c:\NewPath"

有什么办法可以做到这一点吗?还是我必须删除虚拟目录并重新创建它?

答案1

我今天有同样的问题:“如何使用命令行更改 IIS6 vdir 的路径?”

我的解决方案是制作自己的 vbs。要使用它,只需传递 vdir 名称和路径。因此,如果我有一个名为“Web”的 vdir 并想将路径更改为“d:\theNewPath\to\Website”,那么我将在命令提示符中运行以下命令:

updateVDirPath web d:\theNewPath\to\Website

另外,要检查 Vdir 的路径,只需传递 vdir 名称:

updateVDirPath web

以下是 updateVDirPath.vbs 的内容

If WScript.Arguments.Count = 0 or WScript.Arguments.Count > 2  Then
    WScript.Echo "To check the vDirs path, call updateVDirPath <vDir>" & vbCrLf & "To update the vDir's path, call updateVDirPath <vDir> <newPath>"
Else
    set providerObj = GetObject("winmgmts://localhost/root/MicrosoftIISv2") 
    set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT/" & WScript.Arguments(0) & "'") 

    If WScript.Arguments.Count = 1 Then
        WScript.Echo "Current path is: " & IIsWebVirtualDirSettingObj.Path
    Else
        IIsWebVirtualDirSettingObj.Path = WScript.Arguments(1)
        IIsWebVirtualDirSettingObj.Put_ () 
    End If
End If

答案2

您需要使用 adsutil.vbs 来实现这一点。它应该位于 c:\inetpub\adminscripts\

命令行是:


cscript adsutil.vbs SET W3SVC1/<WebSiteNum>/Root/<Vdirname>/Path "<new physical path>"

答案3

您仍然可以在 IIS7 中使用相同的命令,只要您安装了IIS6 管理兼容组件(这些不是默认安装的,但可以通过添加/删除 Windows 功能向导或服务器管理器工具添加)。

或者,您可以直接修改定义虚拟文件夹的父文件夹(或可能是树的上层)中的 web.config 文件。

相关内容