Назад | Перейти на главную страницу

IIS 6.0 Windows Server 2003 - как перебирать все веб-сайты с помощью PowerShell?

Как я могу перебрать все веб-сайты, размещенные на IIS 6.0 (Windows Server 2003), с помощью PowerShell?

Есть ли способ сделать это с помощью WmiObject?

Спасибо!

Перечислите их с помощью ADSI или WMI следующим образом:

#ADSI
$iis = [ADSI]"IIS://localhost/W3SVC" 
$iis.psbase.children | where { $_.schemaClassName -eq "IIsWebServer"} | select ServerComment

#WMI
Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2" | Select ServerComment

Чтобы добавить новый HttpCustomHeader, как вы упомянули в своем комментарии, я думаю, вы можете использовать следующую технику. Пожалуйста, проверьте внимательно, я этого не сделал.

$wmiSiteArray = Get-WmiObject -Class IIsWebServerSetting -Namespace "root\microsoftiisv2"

foreach ($site in $wmiSiteArray)
{
  $path = $site.name + '/root'
  $vdir = [wmi]"root\MicrosoftIISv2:IIsWebVirtualDirSetting='$path'"
  $bindingClass= [wmiclass]'root\MicrosoftIISv2:HttpCustomHeader'
  $newHeader = $bindingClass.CreateInstance()
  $newHeader.KeyName = "CustomHeader: BlahBlah"
  $newHeader.value = $null
  $vdir.HttpCustomHeaders += $newHeader.PSObject.BaseObject
  $vdir.Put()
}

Эта почта: https://stackoverflow.com/questions/3575442/getting-all-virtual-directories-for-a-iis6-web-site-using-wmi

имеет это решение:

Get-WmiObject IIsWebVirtualDir -namespace "ROOT\MicrosoftIISv2" | `
     Where-Object { $_.name -like "W3SVC/1/*" }