Я ищу способ изменить физический путь к виртуальному каталогу в IIS6. По сути, версия IIS6 этого вызова IIS7
c:\Windows\System32\inetsrv\appcmd set VDIR
"Default Web Site/MySite/" "/physicalPath:c:\NewPath"
Есть ли способ сделать это или мне нужно удалить виртуальный каталог и воссоздать его?
Сегодня у меня был тот же вопрос: «Как изменить путь к виртуальному каталогу IIS6 с помощью командной строки?»
Мое решение состояло в том, чтобы создать свой собственный vbs. Чтобы использовать его, просто передайте имя и путь vdir. Итак, если бы у меня был виртуальный каталог с именем «Web» и я хотел бы изменить путь на «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
Вы захотите использовать для этого adsutil.vbs. Он должен быть в c: \ inetpub \ adminscripts \
Командная строка:
cscript adsutil.vbs SET W3SVC1/<WebSiteNum>/Root/<Vdirname>/Path "<new physical path>"
Вы по-прежнему можете использовать ту же команду в IIS7, если вы установили Компоненты совместимости управления IIS6 (они не устанавливаются по умолчанию, но могут быть добавлены с помощью мастера добавления / удаления компонентов Windows или инструмента Server Manager).
Как вариант, вы можете напрямую изменить файл web.config в родительской папке (или, возможно, выше по дереву), где была определена виртуальная папка.