lordofremixes
Goto Top

AD Feld auslesen und in Feld aus Attribut Editor kopieren

Hallo zusammen,

sorry, aber ich würde euch nicht fragen, wenn es nicht so eilen würde und unser AD Admin nicht für längere Zeit ausgefallen wäre face-sad
Eigentlich bin ich gerade zuhause angekommen und wollte mir grad ein Hähnchen in den Ofen schieben, aber der Chef ruft an:

Er braucht dringend bis morgen um 12 Uhr ein Liste aller User aus dem AD mit Vornamen, Nachnamen, Firma, Abteilung, Beschreibung und extensionAttribute1-2 .
Das sollte kein Problem sein, dachte ich, also:

Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 | export-csv -path c:\temp\auslesen.csv

und dann manuell alles im Excel sortieren.

Jetzt aber zu meinem Problem:

Davor sollen das Feld "Email" aller aktiven User in das Feld extensionAttribute1 kopiert werden und das
Feld "objectGUID" in das Feld extensionAttribute2, bevor ich es dann auslese.

Er meinte das das am schnellsten wahrscheinlich manuell mit copy und paste geht ?!?!

Meint ihr ihr könnt mir mit dem Code helfen, ohne dass ich etwas falsch mache? face-sad

Gruß lordofremixes

Content-Key: 577715

Url: https://administrator.de/contentid/577715

Printed on: April 27, 2024 at 19:04 o'clock

Member: Daemmerung
Solution Daemmerung Jun 08, 2020 updated at 18:57:48 (UTC)
Goto Top
Moin,

ungetestet und mal eben auf die Schnelle als Denkanstoß...
Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 , Mail, Guid, distinguishedName | Foreach { Set-ADUser -identity $_.distinguishedName -Add@{extensionattribute1 = $_.Mail; extensionAttribute2 =$_.Guid} }
Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 | export-csv -path c:\temp\auslesen.csv

Bei dem Attribut GUID bin ich mir nicht sicher. Kann gerade nicht nachschauen wie es heißt.

Viele Grüße
Toni
Member: lordofremixes
lordofremixes Jun 08, 2020 updated at 18:33:00 (UTC)
Goto Top
Hallo Toni,

erstmal vielen Dank!

Ich habe den LDAP Namen der ObjectGUID angepasst:

Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2, Mail, objectGUID, distinguishedName | Foreach { Set-ADUser -identity $_.distinguishedName -extensionAttribute1 $_.Mail -extensionAttribute2 $_.objectGUID}
Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 | export-csv -path c:\temp\auslesen.csv

Er meckert aber immer rum:
Set-ADUser : Es wurde kein Parameter gefunden, der dem Parameternamen "extensionattribute1" entspricht.  
Bei Zeile:1 Zeichen:263
+ Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 , Mail, objectGUID, distinguishedName | Foreach { Set-ADUser -identity $_.distinguished
Name -extensionattribute1 <<<<  $_.Mail -extensionAttribute2 $_.objectGUID}
    + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser

Kannst du mir sagen, wo der Fehler liegt?
Member: Daemmerung
Daemmerung Jun 08, 2020 at 19:00:03 (UTC)
Goto Top
Moin,

ja, das war mein Fehler. Hatte nicht mehr daran gedacht, dass Set-ADUser diese Parameter nicht hat.

Für Attribute, für die es keinen Parameter g ibt, gibt es dann die Parameter -Add, Replace, -Delete und -Clear. Hab die Zeile oben mal angepasst. Sofern eure extensionAttribute bereits gesetzt sind und sie einen Leer-String oder null-Wert haben, musst du Replace benutzen.

Viele Grüße
Toni
Member: lordofremixes
lordofremixes Jun 08, 2020 at 20:11:15 (UTC)
Goto Top
Hallo Toni,

ich habe es jetzt mit dem Parameter Add und Replace in einer Test AD probiert, aber es passiert einfach garnix:

Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 , Mail, objectGUID, distinguishedName | Foreach { Set-ADUser -identity $_.distinguishedName -Add@{extensionattribute1 = $_.Mail; extensionAttribute2 =$_.objectGUID}
Get-ADUser -Filter * -Properties * | Select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 | export-csv -path c:\temp\auslesen.csv

Keine Fehlermeldung, garnichts, als würde er den Befehl garnicht erst bearbeiten. CSV Datei wird auch nicht erstellt.
Mit dem Parameter -Replace das gleiche.

Die Werte in extensionAttribute1 und 2 sind alle auf <Nicht festgelegt>

Woran kann das liegen?

Gruß lordofremixes
Member: lordofremixes
lordofremixes Jun 08, 2020 at 20:41:11 (UTC)
Goto Top
Wenn ich nur Zeile 2 ausführe wird die CSV erstellt, es muss also irgendwo an Zeile 1 liegen, aber wo?
Member: lordofremixes
lordofremixes Jun 08, 2020 updated at 20:48:47 (UTC)
Goto Top
Halt stop, hatte eine eckige Klammer vergessen, wenn ich es ausführe, wird der Befehl ausgefuhrt, aber mit der Fehlermeldung:

Set-ADUser : Es wurde kein Parameter gefunden, der dem Parameternamen "Add@" entspricht.  
In Zeile:1 Zeichen:243
+ ... e | Foreach { Set-ADUser -identity $_.distinguishedName -Add@{extensi ...
+                                                             ~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.SetADUser
Member: lordofremixes
lordofremixes Jun 08, 2020 at 20:58:32 (UTC)
Goto Top
Hallo Toni,

leider meckert er immer noch wegen dem Parameter face-sad
Member: lordofremixes
lordofremixes Jun 08, 2020 at 21:13:43 (UTC)
Goto Top
Hallo Toni,

Sorry für die vielen Nachrichten, ich habe den Fehler in der Syntax gefunden:

Get-ADUser -Filter * -Properties * | select-Object name, givenName, department, company, description, title, extensionAttribute1, extensionAttribute2 , Mail, objectGuid, distinguishedName | Foreach { Set-ADUser -identity $_.distinguishedName -Add @{extensionattribute1 = $_.Mail; extensionAttribute2 =$_.objectGuid}

nach dem Add oder Replace noch ein Leerzeichen.


Vielen lieben Dank!!!!
Spart mir mehrere Stunden Nachtarbeit!!!

Gruß
lordofremixes
Member: Daemmerung
Daemmerung Jun 09, 2020 at 15:53:03 (UTC)
Goto Top
Gerne face-smile
Keine Ahnung warum ich das Leerzeichen da vergessen habe. Ist ja ein stinknormaler Parameter.

Wenn gelöst, dann denk dran das die Frage als solche zu markieren.

Viele Grüße