Yapınız da bulunan bilgisayarlarınızın statik ip yapılandırması olduğunu varsayalım. Statik ip olarak kullanılan tüm bilgisayarların TCP-IP yapılandırmasını otomatik olarak yapılandırmak istiyorsunuz. Bunun için işinizi kolaylaştıracak Powershell fonksiyonu tam size göre, bu fonksiyon sayesinde ister Bilgisayar isimlerini belirtin isterseniz Active Directory üzerinden bir "Organization Unit" belirterek ilgili kod bloğunu çalıştırın. Eğer ortamda ulaşamadığınız makinalar olur ise size bir log dosyası yaratıyor.
function Set-AutomaticIPAddress {
<#
.Synopsis
Yazılan fonksiyon ile otomatik ip ve dns adresi alınması sağlanır.
.DESCRIPTION
Bu fonksiyon ile şirket içerisinde bulunan Static IP ve DNS adresi kullanan bilgisayarlarınıza,
WMI üzerinden otomatik IP ve DNS adresi alınması sağlanır.
Alınan hata kodları ile ilgili sayfaya bakınız;
http://msdn.microsoft.com/en-us/library/aa390378(v=vs.85).aspx
.EXAMPLE
Set-AutomaticIPAdress -ComputerName hasangural,Cnolan
Aşağıdaki örnek ile Active Directory cmdlet kullanılarak bilgisayar isimleri spesifik bir OU üzerinden getirilir.
Set-AutomaticIPAdress -ComputerName (Get-ADComputer -Filter \* -SearchBase "OU=BA,dc=hasan,dc=com" |
Select-Object -ExpandProperty Name
#>
param
(
\[Parameter(Mandatory=$True)\]
\[string\[\]\]$ComputerName
)
foreach($Name in $ComputerName) {
try {
$wmi = Get-WmiObject -Class win32\_networkadapterconfiguration -Filter "ipenabled ='true'" -ComputerName $Name -ErrorAction Stop -ErrorVariable Err
$Result = $wmi.EnableDHCP()
$result2 = $wmi.SetDNSServerSearchOrder()
if($Result.ReturnValue -eq 0) {
Write-Host "$Name adlı bilgisayarların IP Adresi başarıyla otomatik olarak yapılandırıldı." }
else { Write-Host "Hata Alındı. Hata Kodu:" $Result.ReturnValue -ForegroundColor Red }
if($result2.ReturnValue -eq 0) {
Write-Host "$Name adlı bilgisayarların DNS Adresi başarıyla otomatik olarak yapılandırıldı."}
else { Write-Host "Hata Alındı. Hata Kodu:" $Result2.ReturnValue -ForegroundColor Red }
}
catch {
Write-Host "$Name adlı bilgisayara bağlanılamadı.Detaylı hatalar için C:Log.txt bakınız." -ForegroundColor Red -BackgroundColor White
$Err | Out-File C:Log.txt }
}
}
Kullanım örnekleri aşağıdaki gibidir.
Set-AutomaticIPAdress -ComputerName hasangural,Cnolan
Active Directory üzerinden spesifik bir "Organization Unit" içerisinden getirmek için ise aşağıdaki örnek size yol gösterecektir.
Set-AutomaticIPAdress -ComputerName (Get-ADComputer -Filter \* -SearchBase "OU=BA,dc=hasan,dc=com" |
Select-Object -ExpandProperty Name