Forum

Powershell Code Hak...
 
Bildirimler
Hepsini Temizle

Powershell Code Hakkında

5 Yazılar
5 Üyeler
0 Reactions
932 Görüntüleme
(@OmerUcler)
Gönderiler: 506
Prominent Member
Konu başlatıcı
 

Merhaba,

50 tane sunucu olduğunu düşünün bu sunuculara atanmış dns sunucuları sırası ile öğrenmek istiyorum. Nasıl ilerleyebilirim bir text dosyasından sunucu isimlerini alıp bana network kartında olan 1.DNS Sunucu ve 2.DNS Sunucu bilgisini öğrenip gerekiyorsa değiştirmem lazım. Konu hakkında bilgisi olan arkadaşların yardımlarını bekliyorum.

Teşekkürler.

 
Gönderildi : 26/12/2015 19:02

(@vasviuysal)
Gönderiler: 7890
Üye
 

powershellsart değil ise pxesec ile basitce yapılabilir bu

bir dosyaya bilgisayarların isim veya ip listesini yapın ve psexec ile  ipconfig /all komutu gondererek tum ip bilgilerini alabilir

degistirmek istediklerinizi de yine psexec ve netsh komutu ile değiştirebilirsiniz

 

 
Gönderildi : 27/12/2015 00:55

(@yusufozturk)
Gönderiler: 10
Active Member
 

Sunucuların DNS yapılandırmalarını, aşağıdaki gibi çekebilirsiniz:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration | ft Description, DNSServerSearchOrder

Eğer ki uzak sunucudan almak istiyorsanız, -ComputerName parametresi eklemek gerekecek:

Get-WmiObject -ComputerName 10.10.10.10 -Class Win32_NetworkAdapterConfiguration | ft Description, DNSServerSearchOrder

Bu komutun çalışabilmesi için aynı AD içinde bulunmanız ve PowerShell'i, diğer sunucularda da yetkili olan bir kullanıcı ile açmanız gerekmektedir.

Eğer ki uzak sunucular, aynı AD içerisinde ise fakat farklı bir kullanıcı ile bağlanılması gerekiyorsa, -Credential kullanmak gerekir:

Get-WmiObject -ComputerName 10.10.10.10 -Class Win32_NetworkAdapterConfiguration -Credential (Get-Credential) | ft Description, DNSServerSearchOrder

Eğer ki uzak sunucular, aynı AD içerisinde değilse, bu durumda session yaratıp girmek gerekecek:

$psSession = New-PSSession -ComputerName localhost -Credential (Get-Credential)

$dnsOutput = Invoke-Command -Session $psSession -ScriptBlock { Get-WmiObject -Class Win32_NetworkAdapterConfiguration | ft Description, DNSServerSearchOrder }

Tüm bu öğrendiklerimizi, bir sunucu listesindeki 50 sunucuya uygulamak için öncelikle tüm sunucular bir txt dosyasına alt alta satır satır yazılır. Sonrasında Get-Content ile bulunduğu lokasyona göre çekilir. Foreach uygulanarak, her bir sunucu için işlem yapılır. Yani:

$servers = Get-Content -Path C:\Sunucularim.txt

foreach ($server in $servers)

{

$output = Get-WmiObject -ComputerName $server  -Class Win32_NetworkAdapterConfiguration | ft Description, DNSServerSearchOrder

Add-Content -Value $server -Path C:\listeciktisi.txt

Add-Content -Value $output -Path C:\listeciktisi.txt

Add-Content -Value "------------------" -Path C:\listeciktisi.txt

}

Script çalıştıktan sonra tüm çıktıyı C:\listeciktisi.txt içine atacaktır.

Kolay gelsin.

Yusuf

 
Gönderildi : 27/12/2015 06:24

(@evrenbanger)
Gönderiler: 2439
Üye
 

Bu cilgin cevap icin tesekkurler Yusuf 🙂

 
Gönderildi : 27/12/2015 11:47

(@mustafatasci)
Gönderiler: 1643
Üye
 

Sadece cilgin diyerek haksizlik etmemek lazim 🙂

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 27/12/2015 17:14

Paylaş: