Benutzer mit den meisten Antworten
Update SamAccountName Powershell

Frage
-
Hallo zusammen
Ich habe eine CSV Datei mit zwei Spalten, die eine mit dem aktuellen SamAccountName (Spalte heisst User)
und die andere mit dem gewünschten SamAccountName (spalte heisst SamAccountName)
Nun möchte ich die aktuellen SamAccounts der einen Spalte durch die andere Spalte mit den neuen Namen ersetzen.
Soweit bin ich bisher, schaffe es leider nicht zum laufen zu bringen.Import-Csv C:\user2.csv | foreach-object {Get-QADuser -SamAccountName $_User -SearchRoot 'Domain/sharedresources/users' | set-qaduser -sAMAccountName $_.SamAccountName}
Für eine Unterstützung wäre ich euch sehr dankbar.
Vielen Dank und Gruss
Robu_1
Antworten
-
AHHHHHH... Klatsch vor die Stirn...
Schuldigung!Man muss immer beachten das die Variable $_ immer in jeder Pipeline neu Gesetz wird!
Deshalb muss man die Werte aus $_ in einem ForEach-Object in andere Variablen übertragen.
Das $_.SamAccountName kann nicht Funktionieren weil es in einer neuen Pipeline erscheint! Hier wird der $_.SamAcountname aus der Get-QADUser Aktion wieder genutzt und das heißt Meier wird mit Meier ersetzt....
Import-Csv C:\user2.csv | Foreach-Object { # Werte aus $_ retten $Username = $_.User # unnötig $_.User würde noch Funktionieren, aber weil es schöner ist... $SamAccountName = $_.SamAccountName Get-QADuser -SamAccountName $Username -SearchRoot 'OU=UnterAbteilung,OU=Manager,OU=Domain Users,DC=msft,DC=com' | Set-QADUser -sAMAccountName $SamAccountName }
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Mittwoch, 14. Mai 2014 11:13
- Als Antwort vorgeschlagen Kamil Kosek Donnerstag, 15. Mai 2014 09:10
- Als Antwort markiert Alex Pitulice Montag, 19. Mai 2014 14:49
Alle Antworten
-
Wenn du SamAccoutName benutzt brauchst du eigentlich kein -Searchroot anzugeben, weil der SamAccountName Indexiert ist, eindeutig ist und super schnell gefunden wird.
Zwischen $_ und User fehlt ein Punkt.
Du benutzt den -SearchRoot falsch, hier musst du die Distinguished Names (LDAP-Pfade) Schreibweise benutzen! Pfade mit Schrägstrichen gehen hier nicht.
siehe: http://www.selfadsi.de/ldap-path.htm
Import-Csv C:\user2.csv | Foreach-Object { Get-QADuser -SamAccountName $_.User -SearchRoot 'OU=UnterAbteilung,OU=Manager,OU=Domain Users,DC=msft,DC=com' | Set-QADUser -sAMAccountName $_.SamAccountName }
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ -
Vielen Dank für die schnelle Antwort.
Habe nun den Search Root entfernt, das Script spuckt zwar keine Fehlermeldung aus,
jedoch werden die Namen aus dem CSV File nicht übernommen.
Import-Csv C:\user2.csv | Foreach-Object {Get-QADuser -SamAccountName $_.User | Set-QADUser -sAMAccountName $_.SamAccountName}Scheint leider etwas noch nicht zu funktionieren.
Zur Info, das CSV File sieht so aus:
Besten Dank für eure Unterstützung.
"SamAccountName,"User"
"NeuerName,"AlterName"- Bearbeitet Robu_1 Mittwoch, 14. Mai 2014 10:21
-
AHHHHHH... Klatsch vor die Stirn...
Schuldigung!Man muss immer beachten das die Variable $_ immer in jeder Pipeline neu Gesetz wird!
Deshalb muss man die Werte aus $_ in einem ForEach-Object in andere Variablen übertragen.
Das $_.SamAccountName kann nicht Funktionieren weil es in einer neuen Pipeline erscheint! Hier wird der $_.SamAcountname aus der Get-QADUser Aktion wieder genutzt und das heißt Meier wird mit Meier ersetzt....
Import-Csv C:\user2.csv | Foreach-Object { # Werte aus $_ retten $Username = $_.User # unnötig $_.User würde noch Funktionieren, aber weil es schöner ist... $SamAccountName = $_.SamAccountName Get-QADuser -SamAccountName $Username -SearchRoot 'OU=UnterAbteilung,OU=Manager,OU=Domain Users,DC=msft,DC=com' | Set-QADUser -sAMAccountName $SamAccountName }
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Mittwoch, 14. Mai 2014 11:13
- Als Antwort vorgeschlagen Kamil Kosek Donnerstag, 15. Mai 2014 09:10
- Als Antwort markiert Alex Pitulice Montag, 19. Mai 2014 14:49
-
Dann lies noch das hier:
Wozu Antworten markieren und für Beiträge abstimmen?
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+