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-ID: 248812

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

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

skahle85
skahle85 10.09.2014 um 17:21:46 Uhr
Goto Top
Hi,

überlege gerade ob du nicht noch den hier machen solltest:
Add-PSSnapin quest.activeroles.admanagement
LuciusCastus
LuciusCastus 11.09.2014 um 15:04:31 Uhr
Goto Top
Das hat mir nicht wirklich weitergeholfen :/
skahle85
skahle85 11.09.2014 um 15:28:07 Uhr
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
colinardo
Lösung colinardo 12.09.2014, aktualisiert am 22.09.2014 um 10:42:28 Uhr
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