
Active Directory ortamlarında kullanıcı yönetimi, özellikle orta ve büyük ölçekli organizasyonlarda ciddi bir operasyonel yük oluşturabilir. Tek tek kullanıcı hesabı açmak hem zaman alıcıdır hem de insan hatasına oldukça açıktır. Bu noktada otomasyon devreye girer ve sistem yöneticilerine büyük bir verimlilik kazancı sağlar.
Powershell, Microsoft ekosisteminde otomasyonun bel kemiği olarak, Active Directory ile entegre çalışabilen güçlü komut setleri sunar. Bu sayede yüzlerce hatta binlerce kullanıcıyı, standartlara uygun şekilde ve dakikalar içinde oluşturmak mümkün hale gelir. Özellikle onboarding süreçlerinde, departman bazlı kullanıcı açılışlarında veya toplu veri migrasyonlarında Powershell kullanımı kaçınılmaz bir avantaj sağlar.
Toplu kullanıcı oluşturma işlemi yapılırken Excel den faydalanabiliriz. Tüm kullanıcılarımızı ve gerekli olan diğer bilgileri aşağıdaki gibi kaydedebiliriz.

Çalışanların ad ve soyadları bize bu formatta gelir; diğer bilgileri ise verilen değerlerle doldurabiliriz. Bu işlem için Excel fonksiyonlarını kullanacağız.

FullName bölümünü doldurmak için yukarıda belirtilen fonksiyonu kullandım.

SAM bölümünü doldurmak için yukarıda belirtilen fonksiyonu kullandım. Fonksiyon uzun olduğu için aşağıdan kopyalayabilirsiniz. Bu uzunluğun nedeni, Türkçe karakterlerin kaldırılması işlemidir.
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2&"."&B2),"ç","c"),"ğ","g"),"ı","i"),"ö","o"),"ş","s"),"ü","u")Son olarak UPN kısmına bakalım. UPN ( User Principal Name ), bir kullanıcının Active Directory ortamında oturum açmak için kullandığı benzersiz kullanıcı adıdır. Bunu da yine bir fonksiyonla tamamlayabiliriz.

=D2&"@"&"huseyinpala.local"Daha sonra dosyamızı CSV (Comma Delimited), yani virgülle ayrılmış formatta kaydedelim. Not Defteri ile açtığımızda aşağıdaki gibi görünecektir.

Ardından .csv uzantılı dosyayı sunucuya yükleyelim. Sonrasında uzun bir script çalıştıracağımız için Powershell ISE başlatalım.

Ardından yukarıdaki komutları kullanalım.
Import-CSV komutu ile hazırladığımız CSV uzantılı dosyayı içe aktarıyoruz. ForEach-Object ile bir döngü oluşturarak her bir kayıt üzerinde işlem yapıyoruz.
Her kullanıcı için bir parola belirlemek amacıyla ConvertTo-SecureString cmdlet’ini kullanıyoruz.
Sonrasında, dosyada yer alan bilgilerin yüklenen CSV dosyasından alınmasını sağlıyoruz.
Path parametresi ile kullanıcıların hangi Organizational Unit (OU) altında oluşturulacağını belirtiyoruz.
Ardından yazdığımız scripti çalıştırıyoruz. Bu işlem sonucunda, dosyada belirttiğimiz kullanıcılar ilgili OU altında oluşturulmuş olacaktır.
Aşağıdaki kodu kopyalayarak kendi örneklerinizde kullanabilirsiniz.
Import-Csv "C:\Users\Administrator\Desktop\kullanici-listesi.csv" | ForEach-Object {
$securePass = ConvertTo-SecureString -AsPlainText "huseyinpala.com" -Force
New-ADUser -GivenName $_.FirstName `
-Surname $_.LastName `
-Name $_.FullName `
-DisplayName $_.FullName `
-SamAccountName $_.SAM `
-UserPrincipalName $_.UPN `
-AccountPassword $securePass `
-ChangePasswordAtLogon $true `
-Enabled $true `
-Path "ou=deneme,ou=denemeler,ou=huseyinpala,dc=huseyinpala,dc=local"
}Daha fazla Windows içeriği için takipte kalın…

Leave a Reply