2009-03-19 3 views
8

Мне нужно реализовать некоторое развертывание версий для развертывания для поддерживаемого приложения, где я могу скопировать сайт, чтобы сказать c: \ inetpub \ wwwroot \ app_v2 и затем переключите виртуальный каталог с c: \ inetpub \ wwwroot \ app_v1.изменить физический путь для виртуального каталога или сайта в IIS с помощью командной строки для IIs6 или IIs7

Есть ли способ изменить физический путь для виртуального каталога в IIS из командной строки?

Edit:

я обнаружил, что в IIS7 вы можете использовать APPCMD установить физический путь виртуального каталога, используя этот формат на этой странице Change the Physical Path of Virtual Directory Content. Я искал что-то более универсальное ....

Appcmd набор виртуального каталог /vdir.name:string/physicalPath: строка

Тем не менее, не кажется, чтобы быть equivelant для IIS 6.

ответ

2

У меня был тот же вопрос сегодня: "Как изменить путь к IIS6 виртуальному каталогу с помощью командной строки?"

WMI-скриптинг был способ пойти, поэтому я решил, что разместил бы vbs, которые я создал для этого.

Чтобы использовать его, просто передайте имя и путь vdir. Так что, если бы я был виртуальным каталог под названием «Web» и хотел изменить путь к «d: \ theNewPath \ к \ Сайта», то я бы выполнить следующую команду в командной строке:

updateVDirPath web d:\theNewPath\to\Website 

Кроме того, в проверьте путь к виртуальному каталогу, просто передать имя виртуального каталога:

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