How do I change physical path of virtual directory in IIS6 through command line?

I'm looking for a way to change the physical path of a virtual directory in IIS6. Basically, the IIS6 version of this IIS7 call

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

Is there a way to do this or do I have to delete the virtual directory and recreate it?


I had the same question today: "how do you change the path to an IIS6 vdir using the command line?"

My solution was to make my own vbs. To use it just pass the vdir name and path. So if I had a vdir called "Web" and wanted to change the path to "d:\theNewPath\to\Website", then I would run the following command in the command prompt:

updateVDirPath web d:\theNewPath\to\Website

Also, to check the path of the Vdir, just pass the vdir name:

updateVDirPath web

So here are the contents to 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

You'll want to use adsutil.vbs for this. It should be in c:\inetpub\adminscripts\

The command line is:


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