изменить физический путь для виртуального каталога или сайта в IIS с помощью командной строки для IIs6 или IIs7 - PullRequest
8 голосов
/ 19 марта 2009

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

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

Edit:

я обнаружил, что в IIS7 вы можете использовать appcmd, чтобы установить физический путь к виртуальному каталогу, используя этот формат на этой странице Изменить физический путь к содержимому виртуального каталога . Я искал что-то более универсальное ....

appcmd set vdir /vdir.name:string / PhysicalPath: строка

Однако для IIS 6, по-видимому, нет равных.

Ответы [ 2 ]

6 голосов
/ 19 марта 2009
2 голосов
/ 23 июня 2012

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

Сценарии WMI были подходящим вариантом, поэтому я решил опубликовать VBS, которые я создал для этого.

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

updateVDirPath web d:\theNewPath\to\Website

Также, чтобы проверить путь Vdir, просто передайте имя Vdir:

updateVDirPath web

Вот содержимое для обновления VDirPath.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
...