How can I change the IP address of all sites in IIS6 using powershell 1.0? How can I change the IP address of all sites in IIS6 using powershell 1.0? powershell powershell

How can I change the IP address of all sites in IIS6 using powershell 1.0?


The following PowerShell script should help:

$oldIp = "172.16.3.214"$newIp = "172.16.3.215"# Get all objects at IIS://Localhost/W3SVC$iisObjects = new-object `    System.DirectoryServices.DirectoryEntry("IIS://Localhost/W3SVC")foreach($site in $iisObjects.psbase.Children){    # Is object a website?    if($site.psbase.SchemaClassName -eq "IIsWebServer")    {        $siteID = $site.psbase.Name        # Grab bindings and cast to array        $bindings = [array]$site.psbase.Properties["ServerBindings"].Value        $hasChanged = $false        $c = 0        foreach($binding in $bindings)        {            # Only change if IP address is one we're interested in            if($binding.IndexOf($oldIp) -gt -1)            {                $newBinding = $binding.Replace($oldIp, $newIp)                Write-Output "$siteID: $binding -> $newBinding"                $bindings[$c] = $newBinding                $hasChanged = $true            }            $c++        }        if($hasChanged)        {            # Only update if something changed            $site.psbase.Properties["ServerBindings"].Value = $bindings            # Comment out this line to simulate updates.            $site.psbase.CommitChanges()            Write-Output "Committed change for $siteID"            Write-Output "========================="        }    }}