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
