我正在寻找一种方法来更改 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 文件。