PowerShell betikleriyle Active Directory işlerini otomatikleştirin


Çoğu BT uzmanının yeni kullanıcılar oluşturmak, parolaları sıfırlamak veya alt etki alanları oluşturmak için kullandıkları Active Directory ile ilgili bazı deneyimleri vardır. Active Directory Users and Computers ve Active Directory Administrative Center gibi araçlar işin yapılmasını sağlar. Ancak bir GUI’ye dayanır ve çok fazla manuel müdahale gerektirir.

Doğru araçları kullanarak, Active Directory görevlerini otomatikleştirmek ve bu yinelenen adımların çoğunu ortadan kaldırmak için PowerShell’i kullanabilirsiniz.

AD modülünü kurun

Active Directory’yi otomatik hale getirmeden önce yapmanız gereken birkaç adım vardır. Öncelikle, işletim sisteminize özgü olan Remote Server Administration Tools paketini yükleyin.

Kurulumdan sonra, AD modülünü etkinleştirin. Denetim Masası’ndaki Programs and Features’e gidin ve şu yolu izleyin. Remote Server Administration Tools > Role Administration Tools > AD DS and AD LDS Tools > Active Directory Module for Windows PowerShell.

AD modülü etkinleştirildikten sonra, PowerShell konsolunu açın ve hangi komutun size uygun olup olmadığını kontrol etmek için Get-Command cmdlet’ini kullanın.

PS> Get-Command -Module ActiveDirectory

CommandType Name Version Source
———– —- ——- ——
Cmdlet Add-ADCentralAccessPolicyMember 1.0.0.0 ActiveDirectory
Cmdlet Add-ADComputerServiceAccount 1.0.0.0 ActiveDirectory
Cmdlet Add-ADDomainControllerPasswordReplicationPolicy 1.0.0.0 ActiveDirectory
Cmdlet Add-ADFineGrainedPasswordPolicySubject 1.0.0.0 ActiveDirectory
….

Ardından, tüm PowerShell komutlarına ait en son belgeleri indirmek için Update-Help komutunu çalıştırın. Microsoft, kapsamlı PowerShell yardım sistemini düzenli olarak günceller. Update-Help komutunu çalıştırmak, özellikle yeni bir modül keşfederken, PowerShell için yeni olan yöneticiler için faydalı bir adımdır.

Kullanıcılar nasıl bulunur?

Bir kullanıcının ayarlarını yapmak için kullanıcıyı bulmanız gerekir. Active Directory’de bunu yapmanın birkaç yolu vardır, ancak en yaygını Get-AdUser cmdlet’idir. Bu cmdlet, kullanıcının adını veya birden fazla kullanıcıyı aynı anda bulabilen bir filtreyle arama yapmanıza olanak tanır. Aşağıdaki örnek, ilk adı Joe olan kullanıcıları bulmak için bir filtre kullanır.

PS> Get-AdUser -Filter ‘givenName -eq “Joe”‘

Kullanıcının adını biliyorsanız, Identity parametresini kullanabilirsiniz.

PS> Get-AdUser -Identity ‘jjones’

Yeni kullanıcılar oluşturma

New-AdUser cmdlet’i yeni kullanıcılar oluşturur ve attributes’lerin çoğunu belirtmenize izin verir. Örneğin, p@$$w0rd10 şifresiyle David Jones adında yeni bir kullanıcı oluşturmak isterseniz, PowerShell’in splatting özelliğini kullanabilirsiniz.

$NewUserParameters = @{
‘GivenName’ = ‘David’
‘Surname’ = ‘Jones’
‘Name’ = ‘djones’
‘AccountPassword’ = (ConvertTo-SecureString ‘p@$$w0rd10’ -AsPlainText -Force)
‘ChangePasswordAtLogon’ = $true
}

New-AdUser @NewUserParameters

Kullanıcıları gruplara ekleme

Diğer bir ortak yönetim görevi, gruplara yeni kullanıcılar eklemektir. Bu Add-AdGroupMember cmdlet ile kolayca yapılabilir. Aşağıdaki örnek, kullanıcı David Jones’u Muhasebe adlı bir Active Directory grubuna ekler.

Add-AdGroupMember -Identity ‘Muhasebe’ -Members ‘ djones ‘

Kullanıcıların oluşturulmasını otomatikleştirin

İnsan kaynakları bölümü, Active Directory’de oluşturulacak yeni kullanıcıları listeleyen bir CSV dosyası paylaştığında bu komutları birleştirebiliriz. CSV dosyası şöyle görünebilir.

“FirstName”,”LastName”,”UserName”
“Adam”,”Bertram”,”abertram”
“Joe”,”Jones”,”jjones”

Bu kullanıcıları oluşturmak için CSV dosyasındaki her kullanıcı için New-AdUser komutunu çalıştıran bir komut dosyası yazın. Kullanıcılara aynı parolayı vermek için built-in Import-Csv komutunu ve PowerShell’deki bir foreach döngüsünü kullanın.

Import-Csv -Path C:\Employees.csv | foreach {
$NewUserParameters = @{
‘GivenName’ = $_.FirstName
‘Surname’ = $_.LastName
‘Name’ = $_.UserName
‘AccountPassword’ = (ConvertTo-SecureString ‘p@$$w0rd10’ -AsPlainText -Force)
}

New-AdUser @NewUserParameters
}

PowerShell ile Active Directory görevlerini nasıl otomatikleştirebileceğinize dair birkaç temel örnek vermeye çalıştık. Active Directory PowerShell modülünde, adminlerin gruplar için izin verme gibi daha karmaşık işleri yürütmesini sağlayan birçok komut vardır.

KAYNAKPOWERSHELL