Active Directory'de UPN (User Principal Name), kullanıcıları benzersiz bir şekilde tanımlamak için kullanılan bir kimliktir. UPN, genellikle bir e-posta adresi formatında olup, kullanıcı adı ve Domain adını içerir ve ör. mail@firatboyan.com şeklinde bir yazım kuralı yapısına sahiptir. UPN, kullanıcıların Active Directory ortamında kimlik doğrulama işlemlerini gerçekleştirmek için kullanılır. Bu kimlik doğrulama yöntemi, özellikle Microsoft 365 ve Entra ID (Azure AD) gibi bulut hizmetlerinde yaygın olarak kullanılır.
Active Directory'de Kullanıcılarının UPN bilgilerini değiştirme gereksinimi birkaç önemli sebepten dolayı ortaya çıkabilir. İlk olarak, bir şirket birleşmesi veya yeniden yapılanma durumunda, kullanıcıların e-posta adresleri ve dolayısıyla UPN'leri değişebilir. Bu durumda, tüm kullanıcıların UPN bilgileri güncellenmelidir. İkinci olarak, bir Domain adının değiştirilmesi gerektiğinde, kullanıcıların mevcut UPN'leri yeni Domain adı ile uyumlu hale getirilir. Üçüncü olarak, güvenlik ve uyumluluk gereksinimlerine yanıt vermek amacıyla UPN'lerin değiştirilmesi gerekebilir. Örneğin, kullanıcıların UPN'leri, daha karmaşık ve tahmin edilmesi zor kimlik bilgileriyle güncellenerek güvenlik artırılabilir. Son olarak, kullanıcı deneyimini iyileştirmek ve tutarlılığı sağlamak amacıyla UPN bilgileri güncellenebilir. Kullanıcıların kolayca hatırlayabileceği ve yazabileceği UPN'ler belirlemek, kullanıcıların günlük işlemlerini daha verimli hale getirebilir.
Özetle, Active Directory'de UPN (User Principal Name), kullanıcıların benzersiz kimliklerini belirlemek için kullanılan önemli bir bileşendir ve çeşitli iş gereksinimleri doğrultusunda güncellenebilir. Bu güncellemeler, kullanıcı deneyimini iyileştirme, güvenliği artırma ve şirket içi veya dışı değişikliklere uyum sağlama amacıyla yapılır.
Bunun için On-Prem. Active Directory kullanıcı nesneleri üzerindeki UPN bilgisine ör. firatboyan.com Domain'ini ekleyeceğiz. Birkaç Active Directory kullanıcı nesenesi için tek tek ekleme yapmak mümkün iken, onlarca hatta yüzlerce kullanıcı nesnesine tek tek eklemek oldukça zahmetli ve zaman alacak bir işlem olacağı için bu işlemi, Windows Server 2022'de PowerShell komutları ile yapacağız.
1- Öncelikle aşağıdaki komutla tüm Forest ortmanındaki UPN Suffix bilgilerini çekiyorum. Görüldüğü gibi, mevcut .local UPN Suffix bilgisi dışında ek bir UPN Suffix bilgisi bulunmuyor.
Get-ADForest | Format-List UPNSuffixes |
2- Active Directory Domains and Trusts üzerinden de kontrol ettiğimde mevcut .local UPN Suffix bilgisi dışında ek bir UPN Suffix bilgisinin bulunmadığını görebiliyorum.
3- Aşağıdaki komutla firatboyan.com UPN Suffix'ini ekliyorum.
Get-ADForest | Set-ADForest -UPNSuffixes @{add="firatboyan.com"} Get-ADForest | Format-List UPNSuffixes |
4- Aynı ekleme işlemini Active Directory Domains and Trusts üzerinden de yapabiliriz.
5- Aşağıdaki komutla tüm Active Directory kullanıcılarımın UPN bilgilerini çekiyorum.
NOT: Komut çıktısının uzamaması için -ResultSetSize 25 parametresi ile sadece ilk 25 kullanıcıyı listeledim. Makalemin ilerleyen kısımlarında da aynı parametre ile filtreleme uyguluyor olacağım.
Get-ADUser -Filter * -ResultSetSize 25 | Sort-Object Name | Format-Table Name, UserPrincipalName |
6- Aşağıdaki komutlarla tüm Active Directory kullanıcılarımın UPN bilgilerini firatboyan.com olarak değiştiriyorum. Birinci komut ile tüm Active Directory kullanıcılarımın mevcut UPN bilgilerini boşa çıkartıyorum. İkinci komut ile de yeni UPN bilgisini tanımlıyorum.
$LocalUsers = Get-ADUser -Filter {UserPrincipalName -like '*firatboyan.local'} -Properties UserPrincipalName -ResultSetSize $null
$LocalUsers | foreach {$newUpn = $_.UserPrincipalName.Replace("firatboyan.local","firatboyan.com"); $_ | Set-ADUser -UserPrincipalName $newUpn} |
7- Aşağıdaki komutla tüm Active Directory kullanıcılarımın yeni UPN bilgilerini çekiyorum.
Get-ADUser -Filter * -ResultSetSize 25 | Sort-Object Name | Format-Table Name, UserPrincipalName |
Belli Bir Organization Unit (OU) İçindeki Kullanıcıların UPN Bilgilerini Değiştirme
Yukarıdaki işlemlerde Organization Unit (OU) fark etmeksizin tüm Active Directory dizinindeki kullanıcılarımın UPN bilgilerini firatboyan.com olarak değiştirdim. Dilerseniz, sadece belli bir Organization Unit (OU) içindeki kullanıcıların UPN bilgilerini de değiştirebilirsiniz.
8- Bunun için öncelikle UPN bilgilerini değiştirmek istediğim Organization Unit'in LDAP (Lightweight Directory Access Protocol) dizin bilgilerini çekiyorum.
Get-ADOrganizationalUnit -Filter 'Name -like "*"' | Format-Table Name, DistinguishedName -A |
9- Dilerseniz Out-File C:\OrganizationUnits.txt komutu ile bir TXT ya da CVS dosyasına da yazdırıp, bir fiziksel dizin altına da yazdılabilirsiniz.
Get-ADOrganizationalUnit -Filter 'Name -like "*"' | Format-Table Name, DistinguishedName -A | Out-File C:\OrganizationUnits.txt |
10- UPN bilgilerini değiştirmek istediğim Organization Unit'in (OU) LDAP (Lightweight Directory Access Protocol) dizini içindeki kullanıcıların mevcut UPN bilgilerini çekiyorum.
Get-ADUser -Filter * -SearchBase "OU=Users,OU=IT,OU=Istanbul,OU=Turkey,OU=Europe,DC=firatboyan,DC=local" -ResultSetSize 25 | Sort-Object Name | Format-Table Name, UserPrincipalName |
11- Aşağıdaki komutlarla tüm Active Directory kullanıcılarımın UPN bilgilerini firatboyan.com olarak değiştiriyorum. Birinci komut ile UPN bilgilerini değiştirmek istediğim Organization Unit'in (OU) LDAP (Lightweight Directory Access Protocol) dizini içindeki kullanıcıların mevcut UPN bilgilerini boşa çıkartıyorum. İkinci komut ile de yeni UPN bilgisini tanımlıyorum.
$LocalUsers = Get-ADUser -Filter {UserPrincipalName -like '*firatboyan.com'} -SearchBase "OU=Users,OU=IT,OU=Istanbul,OU=Turkey,OU=Europe,DC=firatboyan,DC=local" -Properties UserPrincipalName -ResultSetSize $null
$LocalUsers | foreach {$newUpn = $_.UserPrincipalName.Replace("firatboyan.local","firatboyan.com"); $_ | Set-ADUser -UserPrincipalName $newUpn} |
12- Belirlemiş olduğum Organization Unit'in LDAP (Lightweight Directory Access Protocol) dizini içindeki kullanıcıların yeni UPN bilgilerini çekiyorum.
Get-ADUser -Filter * -SearchBase "OU=Users,OU=IT,OU=Istanbul,OU=Turkey,OU=Europe,DC=firatboyan,DC=local" -ResultSetSize 25 | Sort-Object Name | Format-Table Name, UserPrincipalName |
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.