Bu açıklayıcı başlıktan anlaşılacağı gibi bundan sonra bir şey yazmama gerek yok sanırım :) Olsun;
IIS bindingleri çok hassas konu.
Vhost mantığı bindings üzerine kurulu olduğundan programatik olarak mükerrer kayıt girdiğinizde bütün IIS’in durması veya en iyisi bir web sitesinin durmasına yol açabiliyor.
Hele birde IIS üzerinden yüzlerce site varsa hangi binding’in hataya neden olduğunu bulmak sayısal lotoda 4 tutturmak gibi oluyor.
Bu sorunu çözen ufak bir powershell script’i script kiddie moduda googling yaparak aşağıda hazırladım.
Function Get-Duplicate { param($array, [switch]$count) begin { $hash = @{} } process { $array | %{ $hash[$_] = $hash[$_] + 1 } if($count) { $hash.GetEnumerator() | ?{$_.value -gt 1} | %{ New-Object PSObject -Property @{ Value = $_.key Count = $_.value } } } else { $hash.GetEnumerator() | ?{$_.value -gt 1} | %{$_.key} } } } $AllBindingsInfo = Get-WebBinding | select bindingInformation Get-Duplicate $AllBindingsInfo
Bir kaç konu var dikkat edilesi:
1. Powershell konsolunu çalıştırdıktan sonra
Import-Module WebAdministration
demelisiniz ki Get-WebBinding komutu çalışabildin.
2. Powershell console’unu Administrator hakları ile çalıştırmanız gerekiyor.
3. Powershell console’unu ilk açtığınızda Executation Policy direkt çalıştırtmaz o nedenle aşağıdaki komutu verin.
Set-ExecutionPolicy Unrestricted
Not: fonksiyonu buradan arakladım http://www.mikepfeiffer.net/2010/04/working-with-duplicate-array-values-in-powershell/
Ayyy yerim seni çakma sheyll :)