luciuscastus
Goto Top

AD User pflegen anhand einer CSV

Hallo,
ich habe folgendes Problem.
ich habe alle userdaten und darunter liegenden eigenschaften in eine .csv exportiert.
Nun möchte ich alle Daten in der AD pflegen, ergänzen und standardisieren.

$OU_ADUSER="OU=Benutzer,OU=X,OU=X,DC=X,DC=de"  
$userCSV="C:\userlist.csv"  

Import-Module ActiveDirectory
Import-Csv $userCSV -delimiter ';' | %{  

### User in AD suchen | AD-SAMName mit SAMName aus CSV vergleichen ########
Get-aduser -Filter * -SearchBase $OU_ADUSER| ForEach-Object {sAMAccountName -eq "$_.sAMAccountName"}  
### Anhand der csv folgende werte ersetzen ####
Set-Aduser -Identity $_.sAMAccountName -Replace @{cn=$_.cn; Givenname=$_.Givenname; Surname=$_.Surname; telephoneNumber=$_.telephoneNumber; company=$_.company; description=$_.description; department=$_.department}

Fehlercode
sAMAccountName : Die Benennung "sAMAccountName" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.   
Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In C:\UserToGroup_test.ps1:6 Zeichen:62
+ Get-aduser -Filter * -SearchBase $OU_ADUSER| ForEach-Object {sAMAccountName -eq  ...
+                                                              ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (sAMAccountName:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Content-Key: 248812

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

Printed on: April 28, 2024 at 00:04 o'clock

Member: skahle85
skahle85 Sep 10, 2014 at 15:21:46 (UTC)
Goto Top
Hi,

überlege gerade ob du nicht noch den hier machen solltest:
Add-PSSnapin quest.activeroles.admanagement
Member: LuciusCastus
LuciusCastus Sep 11, 2014 at 13:04:31 (UTC)
Goto Top
Das hat mir nicht wirklich weitergeholfen :/
Member: skahle85
skahle85 Sep 11, 2014 at 13:28:07 (UTC)
Goto Top
Habs jetzt nochmal durchgespielt mit verschiedensten Varianten und steig auch nicht dahinter...
Anfang des Jahres hatte ich folgendes Script genutzt:

Import-Csv "Deine.csv" | ForEach-Object {  
 $userPrinc = $_."Logon Username" + "@yourdomain"  
 New-QADUser -Name $_.Name `
 -ParentContainer $_."Container" `  
 -SamAccountName $_."Logon Username" `  
 -UserPassword "!12345qwert" `  
 -FirstName $_."First Name" `  
 -LastName $_."Last Name" `  
 -LogonScript "" `  
 -Description $_."Beschreibung" `  
 -UserPrincipalName $userPrinc `
 -DisplayName $_."Name" ;`  
 Add-QADGroupMember -identity $_."Gruppe 1" -Member $_."Logon Username" ;`  
 Add-QADGroupMember -identity $_."Gruppe 2" -Member $_."Logon Username" ;`  
 Add-QADGroupMember -identity $_."Gruppe 3" -Member $_."Logon Username" ;`  
 Set-QADUser -identity $_."Logon Username" `  
 -UserMustChangePassword $true `
}

Ein wenig dran rumschreiben sollte eigentlich dein Problem lösen...

Hoffe das hilft dir mehr weiter als der vorherige Post.
Grüße
Member: colinardo
Solution colinardo Sep 12, 2014, updated at Sep 22, 2014 at 08:42:28 (UTC)
Goto Top
Moin LuciusCastus,
da ist ja auch einiges nicht stimmig, wenn dann sähe "dein" Script so aus.
Import-Module ActiveDirectory
$OU_ADUSER="OU=Benutzer,OU=X,OU=X,DC=X,DC=de"  
$userCSV="C:\userlist.csv"  

Import-Csv $userCSV -delimiter ';' | %{  
  $csv_username = $_.SAMAccountName
  $user = Get-aduser -Filter * -SearchBase $OU_ADUSER | ?{$_.sAMAccountName -eq $csv_username}
  if ($user){
    # User wurde gefunden, ändere die Eigenschaften
    Set-Aduser -Identity $_.sAMAccountName -Replace @{cn=$_.cn; Givenname=$_.Givenname; Surname=$_.Surname; telephoneNumber=$_.telephoneNumber; company=$_.company; description=$_.description; department=$_.department
  }else{
    # User wurde noch nicht gefunden, lege ihn hier an ....
    # new-aduser .................................
 }
Grüße Uwe