Merhaba Arkadaşlar,
Bu yazımızda Active Directory kullanıcılarında toplu güncelleme üzerine durmaya çalışacağız ancak kodlar tarafında destek olan Ayvaz Öztürk hocama teşekkür ederim, onun sayesinde 225 kişinin bilgilerini tek tek girip hem içerideki sunucularla olan LDAP bağlantısı hem de 365 tarafındaki Disclaimer için gerekli bilgileri güncellemek için uğraşmadık.
İsterseniz hemen nasıl yaptığımıza bir bakalım. Bütün işlemlerimizi örnek resimde olduğu gibi bir test kullanıcısında yapacağız.
Görüleceği üzere hiçbir alan dolu değil. İstersek Attribute Editor sekmesinden de gösterebilirdik ancak tek tek ilgili sekmelerdeki alanların boş olduğunu aşağıda rahatlıkla görebiliriz.
Bir EXCEL sayfası açıp değişiklikleri yapmak istediğimiz alanların isimlerini yazıyoruz. Bunların neler olduğunu ve karşılığını Attribute Editor’de görebileceğimiz gibi aşağıdaki linklerde de görebiliriz.
Ben başta da dediğim gibi hem içerideki sunucularla LDAP hem de 365 Disclaimer için gerekli olan verileri gireceğimden ve ünvanlarda İngilizce ünvan da kullanılacağından biraz fazla alan kullanmaktayım.
Kullanacağım alanlar ve ne için kullanılacağı şu şekildedir.
SamAccountName – kullanıcının Hesap Adı
Title – Türkçe Unvan
St – İngilizce Unvan
Streetaddress – Adresin İlk Kısmı
homePhone – Adres Devam
l – İl/İlçe
facsimileTelephoneNumber – Doğum Tarihi
ipphone – İşe Giriş Tarihi
mobile – Cep Telefonu No
pager – TC Kimlik No
İlgili Excel tablosunun ilk satırına kullanacağım Field bilgisini ve ikinci satırdan itibaren de kullanıcıya ait yeni girilecek güncel bilgileri yazıyorum ve .csv (CSV UTF-8 virgülle ayrılmış) formatında kaydediyorum. Ben örneğimde yavuz – Kopya.csv isimli olarak DC sunucusunun C sürücüsünde scr isimli klasöre kaydettim.
Burada özellikle bilmemiz gereken bir konu da Fieldlere gelecek verilerin mutlaka dolu olmasıdır yani örneğin bir kullanıcının telefon numarası yoksa onu boş bırakamazsınız, mutlaka . veya – veya yok şeklinde bir şey olmalı. Şayet benim gibi kimi kullanıcılarınız telefon bilgileri olup kiminin yoksa o zaman csv yi mobile bilgisi olan ve olmayan diye iki farklı dosya olarak kaydetmeniz gerekmektedir. Aksi halde kod çalıştığında hata verecektir.
Şimdi notepad açıp aşağıdaki kodları yazıyorum;
$eee=Import-Csv “C:\Scr\yavuz – Kopya.csv”-Delimiter “;”
Import-Module Activedirectory
foreach ( $row in $eee)
{
Try
{
$samaccountname=$row.samaccountname
$ipPhone=$row.ipPhone
$Title=$row.title
$streetaddress=$row.streetaddress
$homePhone=$row.homePhone
$l=$row.l
$facsimileTelephoneNumber=$row.facsimileTelephoneNumber
$pager=$row.pager
$st=$row.st
$mobile=$row.mobile
Set-ADUser -Identity $samaccountname -Replace @{Title=$title ;st=$st ;streetaddress=$streetaddress ;homePhone=$homePhone ;l=$l
;facsimileTelephoneNumber=$facsimileTelephoneNumber ;ipPhone=$ipPhone ;mobile=$mobile ;pager=$pager }
}
Catch {” $SamAccountname yok”}
}
Ve dosyayı .ps1 uzantılı olarak kaydediyorum. Örnek olduğu için yine aynı DC sunucumun C sürücüsündeki scr klasörüne kaydediyorum.
Csv dosyasında olduğu gibi burada da kullanacağımız fieldleri yazmamız gerekmektedir. Örneğin csv dosyasında mobile bilgisi yoksa ve biz burada mobile bilgisini de eklemek istiyoruz dersek hata verecektir.
PowerShell i sağ tık Run as Administrator olarak çalıştırıyoruz aksi halde ps1 aşağıdaki hata ile karşılaşabiliriz.
Başarılı bir şekilde çalıştığında PowerShell ekranı aşağıdaki gibi olacaktır.
Csv dosyasındaki veriler sisteme girildikten sonra kullanıcı bilgilerinin aşağıdaki gibi geldiğini görmekteyiz.
Burada 365 ile eşleştirme yapacak arkadaşlar için belirtmekte fayda gördüğüm birkaç hususu da ifade etmek istiyorum; Active Directory’de İl/İlçe bilgisini yazdığımız l (location) 365 tarafında City olarak geçmektedir, Active Directory’de cep telefonu bilgisini yazdığımız mobile 365 tarafında mobilenumber olarak geçmektedir, Yine aynı şekilde AD’ de ST (State/Province) 365 state olarak geçmektedir.