Ich habe versucht, diesen Befehl auszuführen. Er läuft reibungslos, aber die Felder „Stadt“ und „Land“ sind nicht ausgefüllt. Was mache ich falsch?
Get-Mailbox -RecipientTypeDetails RoomMailbox -ANR 'de-' | Select DisplayName,RecipientTypeDetails,alias,PrimarySmtpAddress,City,Country | export-csv C:\Output\room-de2.csv
Antwort1
Get-Mailbox
gibt ein Microsoft.Exchange.Data.Directory.Management.Mailbox-Objekt zurück. Wenn Sie sich dessenMitglieder, Stadt und Land sind nicht dabei.
Beide sind (zusätzliche) Mitglieder der ADUser-Klasse. Sie müssen die SamAccountName-Eigenschaft von Get-Mailbox an Get-ADUser in einer Powershell-Sitzung mit geladenem ActiveDirectory-Modul übergeben. Ohne weitere Details zu Ihrer Umgebung kann ich Ihnen nicht sagen, wie Sie dies in einem Durchgang tun. Es gibt jedoch eine mehrstufige Methode.
Wenn Sie SamAccountName zu Ihrer Select
Pipeline hinzufügen, können Sie dazu die CSV-Datei verwenden. Führen Sie auf einem Domänencontroller Folgendes aus:
Import-Csv <path_to_CSV> | ForEach-Object {Get-ADUser $_.SamAccountName} | select City,Country | Export-Csv <new_CSV_path>
Anschließend können Sie die beiden Felder aus der Get-ADUser-Ausgabe-CSV zur Get-Mailbox-CSV hinzufügen
$Exch = Get-Content <path_to_CSV>
$AD = Get-Content <new_CSV_path>
for ($i = 0; $i -lt $AD.Length; $i++) {$Exch[$i].insert(($Exch[$i].Length), ",$($AD[$i])") | Out-File <path_to_combined_csv> -Append}