Komut dosyası yardımı - telefonun AD hesaplarını almanız ve bunları güvenilir etki alanındaki kişilere eklemeniz gerekir


1

Başka bir güvenilir etki alanında kişi olarak oluşturduğum etki alanı hesaplarım var, böylece onları Exchange GAL'lerinde görebilirler.

Telefon numarası alanını DomainA'daki UserA'dan (kullanıcı hesabı) çıkarmak ve DomainB'deki UserA'ya (ilgili kişi) aktarmak için bir yönteme ihtiyacım var.

Mantığı anlıyorum, bu sadece beni rahatsız eden kod (vbscript / powershell / whatever).

Gördüğüm kadar mantık:

  1. Kaynak AD'ye bağlan (ou / subtree)
  2. Kullanıcı hesaplarını OU'dan ve ad, soyadı, ekran adı ve telefon numarası da dahil olmak üzere alt alıcılardan çıkarın
  3. Hedef AD'ye bağlan (ou / subtree)
  4. Ekran adına bağlı olarak yukarıdaki # 2'deki özü ile teması doğrula / eşleştir
  5. Telefon alanını çıkartılmış telefon numarasıyla güncelleyin
  6. Başarı ve başarısızlık günlüğünü yaz

Yardım edebilecek kimse var mı?

Yanıtlar:


3

Sorun, bir taraftaki hesabı diğer taraftaki hesapla nasıl eşleştirdiğinizdir. Bu özü yapacak.

İthalatta eşleşmenin nasıl yapılacağına dair bir fikrin var mı? Her ikisinde, çalışan ID'si gibi ortak bir alanınız var mı? Aksi takdirde, karmaşık bir çoklu alan eşleşmesi gerekebilir.

   get-aduser -filter * -searchbase "ou=users,dc=adomain,dc=com" -properties Telephonenumber|select displayname, givenname, sn, telephonenumber|export-csv phones.csv

import-csv phones.csv| foreach { 
  get-aduser -displayname $_.displayname -searchbase "ou=contacts dc=Bdomain,dc=com"  | set-aduser -telephoneNumber $_.telephonenumber
}

Ekran adı% 99 için aynı olacak, bu yüzden aşağıda Justus'un dediği gibi ekran adını silebilirim. İki senaryodan oluşan bir melezi test edeceğim. Teşekkürler beyler.
TheCleaner

İçe aktarma için daha fazla kod eklendi
saat

1

Etki Alanı A'daki tüm GörüntüAdı Adlarınız Etki Alanı B'deki GörüntüAdı Adınızla gerçekten eşleştiği sürece, aşağıdaki hileyi yapmalıdır.

Etki Alanı A'da şunu çalıştırın:

Get-ADUser -filter * -properties TelephoneNumber,DisplayName | select DisplayName,TelephoneNumber | export-csv users.csv

Etki Alanı B'de şunu çalıştırın:

Import-CSV users.csv | ForEach { get-aduser -filter "displayname -eq '$($_.displayname)'" | set-aduser -replace @{telephonenumber="$($_.TelephoneNumber)"} }

PowerShell için oldukça yeni olduğumu unutmayın, bu yüzden bir hata yapmış olabilirim. Tek bir kullanıcı üzerinde test ettim, ancak büyük ölçekte değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.