Zaman zaman farklı ihtiyaçlara binayen Azure AD kullanıcı hesapları üstünde toplu bir işlem yapmamız gerekir. Mesela şirket genelinde MFA’i aktifleştirme kararı alındı, lakin Azure AD’de kullanıcılarınızın telefon bilgisi bulunmuyor. Farklı bir örnek olarak, Sign&Go gibi bir ürün kullanmaya karar verdiniz. Çalışanlarınızın imzasında ünvanlarının da yer almasını istiyorsunuz ama bu durumda Azure AD’yi açıp herkesin profilini tek tek düzenlemek çok zahmetli bir iştir, hele de 3 haneli veya daha büyük sayıda çalışanın bulunduğu senaryolarda.
Önünüze böyle bir görev geldiğinde yapmanız gereken bir çalışan listesi oluşturmak ve düzenlenmesi gereken parametreli doldurmak. Bu dosyayı CSV formatında kaydedip birtakım powershell komutu sayesinde çok hızlı bir şekilde bu değişiklikleri kullanıcılarımıza uygulayacağız. Gelin bir örnekle bunu nasıl yapabileceğimize bakalım.
Bir excel dosyası oluşturup aşağıdaki gibi içini dolduralım. Bu örneğimizde kullanıcılarımızın hem departman bilgisini hem de cep telefonu bilgisini düzenleyeceğiz. Elimizde aşağıdaki gibi üç kullanıcı bulunsun.
Bu kullanıcıları indir diyerek ihtiyacım olan CSV dosyasını Azure AD’den elde ediyorum.
Bu listede ihtiyacım olanlar departman ve cep telefonu sütunları, tabi bir de kullanıcıyı ayırt edebilmek için UserPrincipalName. Diğer sütunları isterseniz silebilirsiniz, bunlara ihtiyacımız yok. Ben görüntüyü sadeleştirmek adına bu sütunları siliyorum ve diğer sütunları da gerekli şekilde dolduruyorum.
Artık listem hazır. Dosyayı kaydedip kapatıyorum ve ismini “user_list.csv” olarak değiştiriyorum. Eğer bu listeyi elle oluşturup tamamlamak isterseniz dosyayı kaydederken türünü “CSV UTF-8 (Comma Delimited)” olarak seçmeniz gerekiyor.
UTF-8 olarak seçmemizin sebebi, Türkçe karakterlerin bozulmaması; Comma delimited seçmemizin sebebi de, birazdan kullanacağımız “Import-CSV” komutunun varsayılanda bu dosyaları “,” karakterine göre parçalamasıdır. Bu yüzden dosyanın içinde “,” karakterini kullanmamaya özen göstermeliyiz.
Artık ihtiyacımız olanlara sahibiz. Şimdi Azure AD’ye bir powershell bağlantısı oluşturup toplu düzenleme işlemini tetikleyeceğiz. Aşağıdaki komut setini takip edin.
# Azure AD’ye bağlanalım.
Connect-AzureAD
# CSV dosyamızı içe aktaralım.
$userlist = Import-Csv C:\Temp\user_list.csv
# Şimdi listemiz içinde bir for döngüsü ile tüm
# kullanıcılarımız için işlem yapacağız.
foreach ($line in $userlist) {
$upn = $line.UserPrincipalName
$user = Get-AzureADUser -Filter “userPrincipalName eq ‘$upn'”
if ($user) {
try{
$user | Set-AzureADUser -Department $line.department -mobile $line.mobilephone
} catch {
Write-Warning “$upn user found, but FAILED to update.”
}
}
else{
Write-Warning “$upn not found, skipped”
}
}
Burada dikkat etmemiz gereken iki nokta var. Birincisi, parametreler. Departman zaten kendini belli ediyor ama telefon numarası ile ilgili 3 tane parametre mevcut.
-FacsimileTelephoneNumber : Fax numarası
-Mobile : GSM
-TelephoneNumber : Sabit hat/Ofis telefonu
Biz mobile parametresini tercih edeceğiz. Kullanabileceğimiz diğer parametleri görmek için bu linkten ilgili komutun dokümanına ulaşabilirsiniz.
İkinci dikkat etmemiz gereken nokta da “$line.department” şeklinde yazdığımız değişkenler. Burada “.”dan sonraki kısım CSV dosyamızdaki sütunların adı ile aynı olmalıdır. Lakin büyük küçük harf önemli değil.
Hemen sonucunu da görelim birlikte:
Yukarıdaki komut setini bir .ps1 dosyası olarak kaydedip çalıştırabilirsiniz veya buradaki parametreleri ihtiyacınıza göre düzenleyebilirisiniz. Bu işlemi istediğiniz sayıda kullanıcı için uygulayabilirsiniz. Son bir not eklemem gerekirse, eğer listede boş bırakacağınız kısımlar olursa boş bırakmak yerine “-“ yazıp kaydedin. Yoksa powershell bu bölümleri algılayamayıp hata fırlatıyor. Umarım okurken keyif almışsınızdır. İyi günler dilerim 😊