Veröffentlicht 7. November 201311 j Hallo zusammen, ich brauch mal eure Hilfe, vielleicht fällt das einem ja sehr leicht.. Ich habe die Aufgabe bekommen, mit der PowerShell zwei AD Attribute abzugleichen. D.h. was das Script machen soll: Alle User in einer bestimme Searchroot/base auswählen und dann einfach: mailNickname = samAccountName; nur leider habe ich keine Ahnung wie ich das abbilden könnte... mailNickname ist meistens blank. Was ich im Internet gefunden habe, war jetzt: Get-QADUser -searchroot "Domain.xxxxxxxxxxx" -sizeLimit 0 | foreach { Set-QADUser $_ -ObjectAttributes @{mailNickname = $($_.samAccountName)} } leider ist QADUser wohl nicht Standard und darf bei uns auch nicht installiert werden. Die Frage ist jetzt, wie stell ich das Ganze dann mit dem Standard-Syntax dar? Dazu finde ich fast nichts in Google. (Nur Get-ADUser und Set-ADUser usw.) Wäre echt cool wenn mir einer weiter helfen könnte, da ich bisher kaum Kenntnisse in PowerShell habe. Ich hoffe ich bin dazu im richtigen Forum, leider habe ich nichts extra zu PowerShell gefunden. Danke im Voraus!
7. November 201311 j Hi, sollte eigentlich so gehen: Get-ADUser -Filter * -SearchBase "DC=BLAH, DC=INT" -Properties * Das sucht dir alle Benutzer raus. Dahinter kannst du dann ein Pipe Zeichen "|" setzen, und auf alle gefundenen Benutzer wird das nachfolgende Kommando ausgeführt. In diesem Fall: set-aduser -mailNickname {$_.SamAccountName} Ob das geklappt hat, kannst du dann z.B. so überprüfen: Get-ADUser -Filter * -SearchBase "DC=BLAH, DC=INT" -Properties * | where { $_.mailnickname -ne $_.SamAccountName} Das dürfte dann eigentlich keinen Benutzer mehr anzeigen, weil alle entsprechenden ja nun ihren Accountnamen als Mailnick eingetragen haben. EDIT: Natürlich ohne Gewähr, bevor du sowas auf dein Produktivsystem loslässt solltest du das zumindest erstmal an ein paar Testbenutzern ausprobieren.
7. November 201311 j Autor Danke schonmal! Ich hab das jetzt auf einen Benutzer ausgeführt. Als Fehlermeldung erhalte ich: "Set-ADUser : Es wurde kein Parameter gefunden, der dem Parameternamen "mailNick name" entspricht." Bearbeitet 7. November 201311 j von Plenentair
7. November 201311 j es gibt auch keinen Parameter mailNickname auf dem Set-AdUser Cmdlet. Doku dazu: Set-ADUser
7. November 201311 j Autor get-ADUser -Filter 'SamAccountName -like "name"' | set-aduser -Add @{mailNickname="test123"} das hat funktioniert.. jetzt muss ich nurnoch das "test123" durch samaccountname austauschen.. jemand ne Ahnung? Danke!
7. November 201311 j Hi, dann musst du das Attribut hinzufügen bzw ändern: Set-ADUser -Add @{mailNickname=$_.SamAccountName} löschen kannst du ihn wie folgt: Set-ADUser -clear mailNickname Bei mir funktioniert das: Get-ADUser -Filter 'CN -like "*test*"' -SearchBase "DC=BLAH, DC=INT" -Properties * | Foreach {set-aduser -Identity $_ -Add @{mailNickname=$_.SamAccountName} }
7. November 201311 j Autor in der Zeit wo du es geschrieben hast hab ich es selber realisiert: foreach ($_ in (get-ADUser -Filter 'SamAccountName -like "MitarbeiterName"' -SearchBase "OU=User,OU=Benutzer,OU=SPIRIT22,DC=spirit21,DC=de" -SearchScope subtree )) {set-aduser -identity $_.samAccountName -Add @{mailNickname= ($_.samAccountName)}} Vielen dank für eure Hilfe!! Clear dann so? get-ADUser -Filter * -SearchBase "OU=User,OU=Benutzer,OU=SPIRIT22,DC=spirit21,DC=de" -SearchScope subtree | Set-ADUser -clear mailNickname Bearbeitet 7. November 201311 j von Plenentair
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.