Powershell ile ping ve isim çözümlemesi

Merhaba,

Listenizdeki URL’lerin ip adreslerini hızlıca elde etmek için, Powershell ile temelde belli bir cmdlet ile farklı script’ler hazırlayabilirsiniz.

Örneğin test-connection cmdlet’i kullanılabilir.

t1

 

Name(URL) to IP çözümlemesi yapmak istediğiniz listenizde bolca URL’iniz varsa, bu tür bir bulk işlemden beklenen, output’u en anlamlı biçimde elde etmek olacaktır.

Son aylarda yer aldığım Datacenter(verimerkezi taşınması) projesinde Exchange,Lync gibi sistemlerinin dış bağlantılarını inceliyordum. Bu kapsamda Public IP adreslerini elde etmem gereken URL’den oluşan kalabalık bir liste hazırladım.(Lync Discover URL,Lync A/V URL, OWA URL,SIP vb.)

Bu denli kalabalık URL listesinin Public IP adreslerini “bulk” olarak elde edebildiğim güzel bir script’e rastladım ve bunu paylaşmak istedim 🙂

http://blogs.msdn.com/b/rslaten/archive/2013/07/30/pinging-a-list-of-machines-in-powershell.aspx

Adresinden Ping.renametops1 dosyasını download edebilirsiniz. Dosyanın ismini Ping.ps1 olarak değiştirip kullanabilirsiniz.

.\Ping.ps1 –InputFilePath c:\temp\names.txt –MaxConcurrent 100 –TimesToPing 4 –TimeoutInSeconds 90 –ResolveNames true

PS1 ‘ın kullanım şekli üstteki gibi. Cmdlet’in hazırlanışında kullanılan fonksiyonları ve parametreleri üstteki adresten inceleyebilirsiniz. İhtiyaçlarınız doğrultusunda param() kısmına ekleme yapabilirsiniz fakat mevcut hali harika!

Script’te $job isminde bir değişken tanımlanmış. Değişkene bakıldığında test-connection cmdlet’inin kullanıldığı görülüyor.

Script’in output ‘una bir örnek aşağıdaki ekran alıntısı olacaktır.

e1

Herkese sorunsuz ve neşeli günler dilerim.

Exchange 2013 & Enterprise Vault 11 – IMAP Client Access

Merhaba;

Enterprise Vault’un yeni versiyonu(11) ile ürüne çeşitli yenilikler eklendi. Bu yeniliklerden biri de mobil cihazlardan, akıllı telefonlardan veya IMAP protokolünü destekleyen cihazlardan; arşive erişim sağlayan IMAP Client Access yeniliğidir.

Enterprise Vault(kısaca EV)’un önceki versiyonlarında,Internet Browser üzerinden Mobile Search imkanı sunan basit bir yapı mevcuttu. Bence kullanışlı değildi. Bu yapı hakkındaki yazımı http://www.aydogmusoglu.com/enterprise-vault-mobile-search.html adresinden inceleyebilirsiniz.

Yazımda, Enterprise Vault üzerindeki arşive konforlu erişim imkanı sunan IMAP Client Access yeniliğinden bahsedeceğim.

Test ortamımdan ve topolojimden bahsedeyim.

Continue reading “Exchange 2013 & Enterprise Vault 11 – IMAP Client Access”

Powershell ile Active Directory Raporu

Merhaba,

Muhtelif blog’larda gezinirken rast geldiğim bir PS script’ini paylaşmak istiyorum.

Script, Active Directory yapısında çalışan bir çok servis hakkında ve AD yapısının kendisi hakkında oldukça detaylı, html biçiminde rapor üretiyor. AD domain’leriniz veya forest’ınız hakkında tek seferde bu denli geniş bir veriye sahip olmak çoğu zaman işinize yarayacaktır. Script’in ve/ya “executable” halinin çalıştığı platformlar aşağıdaki gibi belirtilmiş.

image

Detaylar için ve script’i edinmek için aşağıdaki adresi ziyaret edebilirsiniz.

http://gallery.technet.microsoft.com/Active-Directory-Audit-7754a877

Herkese sorunsuz ve neşeli günler dilerim.

get-aduser ile bir export-csv uygulaması

Merhaba ,

Her hangi bir amaçla Active Directory veritabanından bir kaç kriter’de csv formatında bir output almak isterseniz aşağıdaki cmdlet’I kullanabilirsiniz.

Sorguda EmailAddress attribute’u dolu olanların bir kaç bilgisini output olarak aldım.

Get-ADUser -Filter { EmailAddress -like “*” } -Properties * | Select-Object -Property Name,SamAccountName,EmailAddress | Sort-Object -Property Name | export-csv liste.csv

Not: PS2.0 kullanıyorsanız öncelikle activedirecory modülünü PS’e import ediniz. ( import-module activedirectory)

herkese neşeli günler…

PS scripting ; whatif , confirm ve validateonly anahtarları

 Merhaba ,

Bu anahtarlar ; bize komutun yani script’in nasıl çalışacağını , komutun çalıştıktan sonra ilgili veriyi nasıl etkileyeceğini, nasıl bir objenin üretileceğini kısacası script’in çalışmadan önce “çalıştığında ortaya çıkaracağı etkilerini” ve çalışma sürecini kontrol etmemizi sağlar.

Get komutu ile yada bir filter ile çağırdığımız data’ların başka bir komut ile işlenmesi sırasında doğrulama gibi işlemler çokça kullanılabilir. Aşağıdaki gibi örneklendirebiliriz.

Continue reading “PS scripting ; whatif , confirm ve validateonly anahtarları”

PowerShell 2.0 ile Group Policy Modülü

Merhabalar;

Bu yazımızdan önce PowerShell 2.0 ile Active Directory Yönetimi isimli bir yazım olmuştu , sitemin içindeki önceki post’larda bulabilirsiniz. Yazı dizimize yine PS ile devam ediyoruz.

Biliyorsunuz ki group policy yönetimi için group policy management konsolundan faydalanıyoruz. Biz bu işlemleri power shell ile yapmak istiyorsak biraz zahmetli ama emin olun çok hoşunuza gidecek. Powershell ile GPO oluşturulması, GPO ayarları (Tabi registry-based gpo ayarları), GPO nun istediğimiz ou ya linklenmesi, GPO security ayarları gibi birçok işlemi de power shell ile yönetmek mümkün.

Test için Windows Server 2008 R2 Hyper-V platformunu kullandım.

Lab ortamımızda bulunan sanalımız;

Domain : nwtraders.msft (Önceki yazıdan hatırlayacaksınız :))

DC makine adı: testdc.nwtraders.msft

DC ip adresi : 10.11.27.245 /24

DC mizde group policy management konsolunu bir görelim.

Şu anda tanımlanmış ve uygulanmış herhangi bir group policy objesi bulunmamaktadır. Sadece default policy objelerini görmekteyiz.

Öncelikle powershell e group policy modülünü yüklemeliyiz.

Yeni bir group policy objesi oluşturalım.

GUI’den bakarsak yani GPMC’den , gpo’nun oluştuğunu görebiliriz.

Artık GPO hazır. Şimdi ise içerisinde bir kaç ayar yapalım. Mesela control panel’e erişim engellemek , wallpaper sabitlemek, start menüye ekleyip çıkarmak gibi…Yani oluşturduğumuz gpo üzerınde editleme işlemi yapalım. Set-GPRegistryValue komutu ile ilgili bilgi alalım.

Registry  based group policy ayarı yapacağız. Yani uygulayacağımız group policy ayarının aslında registry de ki yerini ve değerini belirtmemiz gerekecek. Group policy de yaptığımız ayarların aslında registry value’ları ile ilgili pek doküman bulamadım. Fakat registry.pol dosyasını yorumlayan bir tool ile bu işlemi gerçekleştirdim. Yani önceden örneğin desktop wallpaper sabitleyince aslında registry de nasıl bir değer giriliyor diye baktım. Sonra da bunu powershell ile uyguladım. Ve sonuç…..

Desktop wallpaper belirleme;

Wallpaper fill (yani masaüstünü tam kaplaması) için;

Control Panel e erişimi engelledim;

Klasik Start Menu ayarı;

Start Menuye logoff butonu ekleme;

Start Menuye Run ekleme;

Ctrl + Alt + DEL ile Task Manager a erişimi engelleme;

GUI’den yani GPMC’den yaptığımız ayarların nw_test isimli gpo’ya set edilip edilmediğine bakalım..

Artık nw_test isimli gpo’yu bir organizational unit’e link’leyebiliriz..

Görüldüğü gibi bir cmdlet ile registery’deki ayarları değiştiriyoruz . Okuyanlara , PS 2.0’da GPO’lara bakış açısı kazandırmaktı amacım. Umarım işinize yaramıştır…

neşeli günler….

Kaynak : TechNet

PowerShell Integrated Scripting Environment -ISE-

 

 

PowerShell 2.0 ISE ; komutları çalıştırmak için , düzenlemek ve debugging için grafik arayüzüne sahip bir ortam sunuyor ( daha fazla kullanıcı dostu da diyebilirsiniz ) Varsayılanda Windows Server 2008 R2 ile kurulu gelmiyor ama isterseniz ki muhmetelen istersiniz , Server Manager konsolundan aşağıdaki ismi geçen feature’ı ekleyip kullanabilirsiniz.

 

Kurulum sonrasında görünümü aşağıdaki gibidir.

Herkese iyi çalışmalar sorunsuz ve neşeli günler ,

barisca

Power Shell V2 ve Active Directory Modülüne dair…

Son bir kaç yılda izlenebileceği üzere Windows 7 ve Windows Server 2008 R2 devri bağladığından beri PowerShell V2 ile beraber shell yapısının kullanım oranı da artmaya başladı . Özelikle Remoting ve scripting tarafındaki yenilikler yeni shell’I daha da cazip hale getirmeye başladı. Daha önce de PowerShell V2 ile ilgili bir yazı yazmıştım.Şimdi ki yazımızda bunun devamı niteliğindendedir ve Power Shell V2 ile Active Directory objelerinin yönetiminden bahsedeceğiz.

Test için Windows Server 2008 R2 Hyper-V platformunu kullandım.

Lab ortamımızda bulunan makinemiz;

Domain : nwtraders.msft

DC makine adı: testdc.nwtraders.msft

DC ip adresi : 10.11.27.245 /24

Active Directory Module for Windows Power Shell i açıyoruz. Burası AD modülü için ayrıca tasarlanmıştır. Tabi ki power shell’i de açarak AD modülünü import edip aynı alana ulaşabilirsiniz.

Öncelikle Get-Command komutu ile AD de yani AD modülünde neler yapabiliriz bir bakalım:

Output’dan gördüğümüz gibi çalıştırabileceğimiz komutlar “Name” kolonunda ve tanımıda da “Definition” kolonunda açıklanmıştır.

Bir kaç örnek kullanımı inceleyelim.

Nwtraders.msft domainimize yeni bir computer objesi ekleyelim.

Komut tamamlandıktan sonar GUI’den bakacak olursak hesabın açıkdığını görebiliriz.

Şimdi de bir pre-staging uygulaması yapalım.

Daha önceden bir notepad’e yazılmış computer isimlerini alıp AD içerisine objeleri oluşturalım. Amaç isimleri notepad’den almak olacaktır.

Test.txt dosyamız c:\ altında kök dizindedir ve içeriği aşağıdaki gibidir.

 

Şimdi de power shell de dosya içeriğini bir görüntüleyelim

Import işleminden önce content’i gözlemek olası bir sorunu öncesinden çözmek açısından iyi olabilir.

Ve dosya içerisinde isimleri yazan computer accountlarını AD içerisine oluşturalım.

Komut tamamlandı. GUI’den gözlersek sonuç aşağıdaki gibidir.

 

Şimdi de txt dosyasından bilgilerini alarak oluşturduğumuz computer accountları için “location” attribute’u bilgisinin “Main Office” şeklinde doldurulmasını sağlayalım.

İkinci komut sorunsuz çalışmıştır. GUI’den de sonuçlarına bakabiliriz.

Önce ilk oluşturduğumuz computer için bakalım. Bu computer hesabını txt dosyasındaki content’i kullanarak açmamıştık! .

 

Nw-cli-5 için location bilgisi boş iken nw-cli-6 ‘nın yani dosya içerisinden ismi çekilerek oluşturulan computer’un location bilgisinin dolu olduğunu görüyoruz.

 

Computers container’ında bulunan computer accountlarını listelemek için ise;

Genel olarak computer’lar için daha ayrıntılı bilgi almak istersek,

 

Listelediğimiz computer’ları computers container’i içerisinden “client computers” ou’su içerisine taşıyalım.

Ve yine GUI’den gözlemek istersek ,

sonuç resimdeki gibidir.

Computers container’ına da bakacak olursak taşındığını görebiliyoruz.

Herhangi bir komut yada AD modülündeki komutlar hakkında bilgi icin;

Yazı dizimizi okumaya devam edin bir sonraki powershell yazısında görüşmek dileğiyle….

Kaynak : Microsoft TechNet

 

 

 

 

 

 

 

 

 

Power Shell 2.0 ‘ın yenilikleri

Remoting

Uzak sistemleride script çalıştırabilmesi özelliği PS 2.0 ‘ın en gözde yeniliklerinden bir tanesidir. Böylelikle ağınıza bağlı uzak sunucularda scriptlerinizi çalıştırabilirsiniz. Remoting ‘den faydalanabilmek için hem kullandığınız bilgisayarda yada sunucuda hemde uzak bilgisayarda yada sunucuda PS 2.0 yüklü olmalıdır.

İlerleyen yazılarımızda bu özelliğin yapılandırılmasını ve kullanımı inceleyeceğiz.

ScriptCmdlets

PS 2.0 , sistem yöneticilerine yani administrator’lara PS’in kendisini kullanarak ScriptCmdlet ‘ler oluşturma imkanını sağlamıştır. (PS 1.0 ‘da bu işlem genelde developer’ların yapabildiği bir işti)

Yine get-help komutu ile about_scriptcmdletmethods yada paramaters komutları kullanılabilir.

Yenilikleri elbette üstte yazdıklarımla sınırlı değil. Saymak istersek ; background job , script debugging , hosted APIs , yeni değişkenler , cmdlet’ler , operatorler ve dahası ….

Kaynak : Technet