Проблема с провайдером root/WebAdministration WMI
заключается в том, что он не очень богатый набор функций.
Вместо этого вы можете использовать управляемый API Microsoft.Web.Administration
.Этот скрипт будет работать, если он выполняется на самом сервере.
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$siteName = "Default Web Site"
$serverIP = "your ip address"
$newPath = "your new path"
$serverManager = New-Object Microsoft.Web.Administration.ServerManager
## $serverManager = [Microsoft.Web.Administration.ServerManager]::OpenRemote($serverIP)
$site = $serverManager.Sites | where { $_.Name -eq $siteName }
$rootApp = $site.Applications | where { $_.Path -eq "/" }
$rootVdir = $rootApp.VirtualDirectories | where { $_.Path -eq "/" }
$rootVdir.PhysicalPath = $newPath
$serverManager.CommitChanges()
Вы заметите, что есть закомментированная строка, которая может работать для вас, если вам нужно сделать это удаленно:
## $serverManager = [Microsoft.Web.Administration.ServerManager]::OpenRemote($serverIP)
К сожалению, MS не думала предоставить способ предоставления учетных данных.Это будет означать, что учетной записи, на которой выполняется сценарий, потребуются все необходимые разрешения, предоставленные на удаленном сервере.Я не могу попробовать это сейчас, потому что я не нахожусь в среде AD.
Сценарий сам обновит физический путь к корню сайта (/
).
Для получения дополнительной информации о конфигурации IIS7 см. Следующую ссылку:
Справочник по конфигурации IIS7> system.applicationHost