PowerShell ile ilgili makale serisinin son makalesinde powershell ile windows programlarını kullanmayı ve powershell scripting ile kullanıcı , grup yaratma gibi işlemlerin nasıl yapılacağını anlatacağım.
Windows komut satırı programlarını ve Windows grafik arabirimine sahip programları başlatmak için Windows PowerShell’i kullanabiliriz.Windows PowerShell'in içinde bulunan Notepad gibi bir programı çalıştırmak için, programı çalıştırabilmek için gerekli olan dosya bir dizin içinde olmalıdır çünkü, izlenen yolun şartlarının değişkenliğinin değeri, Windows PowerShellin uygulamaları, yararlıkları ve yazılı metinleri nerede arayacağını belirler.
İzlenen yolun şartlarının değişkenliğini göstermek için aşağıdaki şekilde yazınız:
PS> $env:path
İzlenen yolun şartlarının değişkenliğine yeni dizinler eklemek için aşağıdaki şekilde yazınız:
PS> $env:path += ";newdirectory"
Örneğin WordPad.exe dosyasının dizinini izlenen yol değişkenine eklemek için aşağıdaki şekilde yazınız :
PS> $env:path += ";C:\Program Files\Windows NT\Accessories"
Kurulum komutu gibi, bu görev durumu sadece mevcut Windows PowerShell oturumlarının değerlerini değiştirir. Değişimi kalıcı hale getirmek için, görev durumunu Windows PowerShell profiline eklemek gerekir.
Scripting
Windows PowerShell interaktif bir ortamı destekler. Command Prompt’da bir komutu yazdığınızda komut işlenir ve çıktı shell penceresinde görüntülenir. Ya da bu komut çıktısını bir dosyaya kaydedebilir veya yazıcıya gönderebiliriz. Bir diğer seçenek olarak da bir çıktıyı başka bir komuta göndermek için Pipeline kullanabiliriz. Eğer komut satırında tekrar tekrar çalıştıracağımız belli komut dizimleri varsa, bunları çalıştırabilir, bir dosyaya kaydedebiliriz. Bu uygulamaya scripting ismini de verebiliriz.
Sık erişim sağlamış olduğumuz komutları, örneğin .VBS(Visual Basic Script) olarak kaydedip daha sonra çift tıklama ile kolay bir şekilde uzun uzun yazmak zorunda kalmadan komutun istemiş olduğu işlevi yerine getirebiliriz.
Windows PowerShell tamamen Scripting uygulamalarını desteklemektedir. PowerShell’de script uygulumaları .PS1 uzantasına sahiptir. Script’i PowerShell üzerinde çalıştırabilmek için sadece ismini yazmamız yeterlidir. Dosya uzantısını yazıp yazmamak tamamen bizim insiyatifimizdedir. Script’i çalıştırabilmek için geçerli bir dizinde yer alan PATH’i (tam tanımlanmış yolu) belirtmemiz gerekmekir. Geçerli dizini göstermek için dizin ismini yazabilir ya da geçerli dizini temsil eden bir nokta(.) kullanabiliriz.
Şimdi de PowerShell üzerinde scripting ile alakalı yapabileceğimiz uygulamalara bakalım.
Active Directory'de Kullanıcı Yaratma;
# Create ADS-user $Path= "LDAP://Server1/OU=Bilgiislem,DC=ceyhuncamli,DC=com" $name = "Ceyhun Camli" $NTname = "CeyhunCamli" $ou = New-Object Directoryservices.DirectoryEntry($Path) $user = $ou.PSBase.Children.Add("CN=" + $name,'user') $user.PSBase.CommitChanges() $user.SAMAccountName = $NTname $user.l = "Izmir" $user.Description = "IT Professional" $user.PSBase.CommitChanges() "User has been created: " + $user.PBase.Path $user.SetPassword("Password100") "Password is set" $user.Accountdisabled = $false "User has been activated!"
Active Directory'de Tanımlı Bir Kullanıcı Hesabını Silme;
$Path= "LDAP://Server1/CN=Ceyhun Camli,OU=Satis,DC=ceyhuncamli,DC=com" $user = new-object system.directoryservices.directoryEntry($Path) if ([system.directoryservices.directoryEntry]::Exists($Path)) { "User already exists and will be deleted now!" $user.PSBase.DeleteTree() } else { "User does not exist!" }
Active Directory'de Kullanıcı Hesabını Taşıma;
#$Path= "LDAP://Server1/CN=Ceyhun Camli,OU=Bilgiislem,DC=ceyhuncamli,DC=com" $target = "LDAP://Server1/CN=Yonetim,DC=ceyhuncamli,DC=com " $user = new-object system.directoryservices.directoryEntry($Path) $user.PSBase.MoveTo($target) "Object has been moved!"
Active Directory Group Yaratma;
$Path= "LDAP://Server1/DC=ceyhuncamli,DC=com" $con = new-object system.directoryservices.directoryEntry($Path) $ou = $con.PSBase.Children.Add("cn=Yoneticiler","group") $ou.PSBase.CommitChanges() $ou.samaccountname = "Yoneticiler" $ou.Description = "ceyhuncamli.com yoneticileri" $ou.PSBase.CommitChanges() ""Group was created!"
Active Directory'de Gruplara Kullanıcı Ekleme;
$Path= "LDAP://Server1/cn=Yoneticiler,DC=ceyhuncamli,DC=com" $gr = new-object system.directoryservices.directoryEntry($Path) $User = "LDAP://Server1/CN=Ceyhun Camli,OU=Yoneticiler,DC=ceyhuncamli,DC=com" $ou.Add($User) "User " + $User + " have been added to the goup " + $ou + "
Active Directory'de Bir Kullanıcının Grup Üyeliğini Silme;
$Path= "LDAP://Server1/cn=Yoneticiler,DC=ceyhuncamli,DC=com" $gr = new-object system.directoryservices.directoryEntry($Path) $User = "LDAP://Server1/CN=Ceyhun Camli,OU=Yoneticiler,DC=ceyhuncamli,DC=com" $ou.Remove($User) "User " + $User + " have been deleted from group " + $ou + "
Active Directory OU Yaratma;
$Path= "LDAP://Server1/DC=ceyhuncamli,DC=com" $con = new-object system.directoryservices.directoryEntry($Path) $ou = $con.PSBase.Children.Add("ou=Yoneticiler","organizationalUnit") $ou.PSBase.CommitChanges()
$ou.Description = "ceyhuncamli Yoneticiler" $ou.PSBase.CommitChanges() "OU has been created!"
Cmdlet’ler ve Alias’ları

Evet bir serinin sonuna geldik. Herkese yararlı olması dileğiyle.


Son Yorumlar