PowerShell: Metin Dosyalarından Active Directory Kullanıcıları Ekleme (Toplu)
Çok sayıda kullanıcının içe aktarılması söz konusu olduğunda csv 1 numaradır. Peki ya metin dosyaları? Elbette metin dosyalarının içeriğini csv'ye aktarabilirsiniz. Ancak bu yazımda aktif dizin kullanıcılarını direkt olarak metin dosyalarından eklemek istiyorum.
giriiş
Aşağıdakiler için bu metin dosyasını kullanıyorum. “Pumping Iron” filmindeki kişilerle olan benzerlikler tamamen tesadüfidir ?
Eminim çoğu yönetici bundan memnun değildir. Ve çoğu yönetici csv'ye dönüştürmeye başlayacak. Ama onu olduğu gibi kabul edeceğim.
1. Kullanıcı eklemek için Split'i kullanma
Bu da beni ayrılmaya getiriyor. Bölünmüş nedir? Split bir PowerShell yöntemidir. Bölmek bir şeyi bölmenize yardımcı olabilir. Ve listemizi bölmemiz gerekiyor. Verilen ad ve soyadların bir listesine ihtiyacımız var. Bu yüzden PowerShell'e nereye bölüneceğini söylemeliyiz. Boş pozisyonda bölmek istiyoruz.
Örnek :
("Patrick Grünauer").Split(" ")
Şimdi bunları ayrı ayrı çağırıyoruz.
$name=("Patrick Grünauer").Split(" ")
$name[0]
$name[1]Güzel şeyler. Bir sonraki adım için tam olarak ihtiyacımız olan şey bu.
Dosyam ad ve soyadlardan oluşuyor. Yukarıdaki dosyanın aynısıdır.
Aşağıdaki kod
- listeyi verilen ad ve soyadına böler
- UserPrincipalName (soyadı), SamAccountName (soyadı), Tam Adı (ad + soyadı) ve AccountPassword'e sahip yeni Active Directory kullanıcıları ekler
- her kullanıcıya olanak sağlar
- ChangePasswortAtLogon'u True olarak ayarlar
- ne olduğunu gösterir (ayrıntılı parametre)
İşte başlıyoruz:
Get-Content C:\temp\users.txt | ForEach-Object {$Split = $_.Split(" "); $given=$Split[0]; $sur=$Split[1]; New-ADUser -GivenName $given -Surname $sur -Name ($given + " " + $sur) -UserPrincipalName (($sur + "@" + "$env:userdnsdomain")).ToLower() -SamAccountName ($sur).ToLower() -AccountPassword (ConvertTo-SecureString -AsPlainText "Passw00rd123" -Force) -Enabled $true -ChangePasswordAtLogon $true -Verbose}Bölünme başarılı oldu. Adınız ve Soyadınıza dikkat edin.
Tüm kullanıcılar etkindir ve oturum açma adları (UPN, SamAccountname) doğrudur.
2. ConvertFrom-String'i Kullanma (PowerShell 5.0 ve üzeri)
Şimdi daha basit çözüme dönelim. PowerShell 5.0 ve üzerini çalıştıran bir sunucunun önünde oturuyorsanız ConvertFrom-String'i kullanabilirsiniz. ConvertFrom-String'in sizin için neler yapabileceğini görün:
Get-Content C:\temp\Users.txt | ConvertFrom-StringYani elimizde P1 ve P2 var. Bu harika.
Get-Content C:\temp\users.txt | ConvertFrom-String | ForEach-Object {New-ADUser -GivenName $_.P1 -Surname $_.P2 -Name ($_.P1 + " " + $_.P2) -UserPrincipalName (($_.P2 + "@" + "$env:userdnsdomain")).ToLower() -SamAccountName ($_.P2).ToLower() -AccountPassword (ConvertTo-SecureString -AsPlainText "Passw000rd123" -Force) -Enabled $true -ChangePasswordAtLogon $true -Verbose}Harika şeyler. Umarım siz de beğenirsiniz.
Metin dosyalarıyla oynarken iyi eğlenceler!









