So I was migrating a web server from IIS 6 to IIS 8.5.
After the migration i needed to change IP on the new server. That’s not fun when all bindings are with IP.
So I decided to just Google a script that could change everything for me. I only found scripts that could change for a specific website and not all of them. So after some copy past and some trial and error I got this is result:
Import-Module Webadministration $OldIP = "192.168.2.68:80" $NewIP = "*:80" $SiteNames = Get-ChildItem -Path IIS:\Sites | Select-Object name #-First 1 foreach ($name in $SiteNames){ $txtName = $name.name #$name.name.gettype() $wsbindings = (Get-ItemProperty -Path "IIS:\Sites\$txtName" -Name Bindings) for($i=0;$i -lt ($wsbindings.Collection).length;$i++){ $tmp = $wsbindings.Collection[$i].bindingInformation if ($tmp -match $OldIP){ $tmp = $tmp -replace $OldIP, $NewIP ($wsbindings.Collection[$i]).bindingInformation = $tmp; Set-ItemProperty -Path "IIS:\Sites\$txtName" -Name Bindings -Value $wsbindings } } }
If you find it useful please leave a comment.
/Fredrik