Jump to content

Massenimport von Userobjekten per CSVDE möglich?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin zusammen,

 

ich stehe hier vor einer Aufgabe, die ich mir logischerweise recht leicht machen möchte.

 

Zwei bisher unabhängige Firmen mit je einem eigenen AD sind fusioniert.

Eine neue, gemeinsame AD wurde sorgsam geplant und aufgesetzt.

 

Nun geht es daran, die Benutzer anzulegen. Es wurde einhellig entschieden, keine echte Migration vorzunehmen, sondern die User komplett neu anzulegen.

Hier würde ich, da es sich um ca. 200 aktive Benutzerkonten handelt, das Ganze gerne weitestgehend automatisiert erledigen.

 

Hierzu sind mir bisher zwei Bordmittel bekannt: CSVDE und LDIFDE.

Mit LDIFDE habe ich bereits erfolgreich völlig reibungslos ein paar Testbenutzer anlegen können. Der Nachteil hierbei liegt in meinen Augen an der unübersichtlichen Struktur der *.LDF Datei, die die zu importierenden Informationen enthält.

 

Hier wäre die Bearbeitung in Excel viel charmanter, da man hier dann nur recht wenige Informationen manuell ändern muss, da sich die restlichen Werte über Formeln ändern lassen.

Und da kommt CSVDE in's Spiel!

 

In dem Buch "Windows Server 2003 - Die Expertentipps" (MS Press 5604, ISBN: 978-3-86645-604-4) schreiben unsere ExpertMember "NorbertFe" und "NilsK", dass CSVDE nicht zum Import von Objekten geeignet ist, welche ein Kennwort erfordern. Da das Buch von Windows Server 2003 handelt, hege ich die Hoffnung, dass sich dieser Umstand evtl. bei Windows Server 2008 geändert hat und somit möglich ist.

 

Hat jemand aus der Community hier schon erfolgreich mit CSVDE Userkonten im AD angelegt?

 

Bin wie immer für jede konstruktive Antwort dankbar und sende herzliche Grüße von der gerade sonnigen Nordseeküste...

 

Euer Markus

Link zu diesem Kommentar

Zu LDIFDE und CSVDE schau mal hier http://www.faq-o-matic.net/2004/12/31/erzeugen-von-ldifde-templates-aus-excel-mit-gnu-awk/ und hier http://www.faq-o-matic.net/2004/12/31/ldifde-exe-zur-ad-bearbeitung/ rein.

 

Grundsätzlich würde ich mir an Deiner Stelle auch die PowerShell (siehe Link von tesso) und die eingebauten ds-Kommandos wie dsadd http://technet.microsoft.com/de-de/library/cc731279.aspx anschauen.

Link zu diesem Kommentar

@Tesso:

Danke für den Link, ich hab's mir schon heruntergeladen und werde es mir genauer anschauen. Scheint eine gute Alternative zu sein ;)!

 

@Daniel:

Auch mein Dank an Dich! Werde mir auch die Links zu FAQ-o-matic anschauen. Auch die "ds"-Commands hatte ich mir in dem oben genannten Buch schon mal angesehen, fand aber LDIFDE und CSVDE auf den ersten Blick charmanter ;).

Link zu diesem Kommentar

Moin,

 

hier ist mit csvde. Du kannst mit diese command alle Users name von alte domain exportieren.

 

csvde -d "DC=domain,DC=tld" -f C:\Exported_Users.csv

 

Dann in Excel alle diese columns halten und die rest löschen.

Behaltene Columns:

DN
objectClass
ou
distinguishedName
name
cn
sn
givenName
displayName
sAMAccountName
userPrincipalName

Dann in Excel alte domain name in LDAP path mit neue Domain Name ersetzen.

Am ende neue .CSV file mit diese command imprtieren:

 

csvde -i -f C:\Exported_Users.csv

Jetzt hast gleiche Namen in neue Domain.

 

Oder wenn du bereit CSV datei hast, du kannst auch Password mit PowerShell setzen.

 

 

Import-CSV C:\Exported_Users.csv | New-ADUser -AccountPassword (ConvertTo-SecureString –AsPlainText "Pa$$word01" -Force) -Enabled:$true -ChangePasswordAtLogon:$true

 

 

MFG

bearbeitet von samsam
Link zu diesem Kommentar

Das mit dem Powershell Import-CSV klingt extrem interessant!

Verstehe ich das so, dass der an die neue AD angepasste CSV-Export zeilenweise an den Befehl New-ADUser übergeben wird, und jeder User das selbe Passwort erhält?



Ich habe auch schon das Powershell-Script aus dem TechNet in der Testumgebung getestet und finde es wirklich gut. Habe dann auf der PowerShell mal im Hilfekontext von "New-ADUser" geschaut. Hier kann ich zwar den Pfad zum LoginScript mit übergeben, aber leider nicht Laufwerksbuchstaben und Pfad vom Homelaufwerk.

Schade eigentlich, aber das kann man dann ja über Mehrfachmarkierung nachziehen.

Link zu diesem Kommentar

Moin,

 

hier ist Beispiel für homedrive H und Password Pa$$word01:

 

 

 

$newUsers = Import-Csv C:\Exported_Users.csv

 
foreach ($user in $newUsers) { 

new-aduser -samaccountname $user.samaccountname ` 

-userprincipalname $user.upn ` 

-name $user.name ` 

-displayname $user.displayname ` 

-givenname $user.givenname ` 

-surname $user.surname ` 

-Path "OU=Test,DC=domain,DC=tld" ` 

-accountpassword (convertto-securestring "Pa$$word01" -asplaintext -force) ` 

-enabled $true ` 

-ChangePasswordAtLogon:$true 

-homedrive "H" ` 

-homedirectory "\\ServerName\Folder\$($user.samaccountname)" 

} # end foreach $user

 

 

MFG

bearbeitet von samsam
Link zu diesem Kommentar

@samsam:

Frage zu Deinem Script, da ich jetzt nicht der PowerShell-Spezi bin:

 


new-aduser -samaccountname $user.samaccountname `

 

$user.samaccountname bedeutet, dass die Inhalte jeder Zeile in die Variable "$user" geschrieben werden, und dass "samaccountname" der Spaltenname ist?

 

Sorry für die vielleicht etwas lächerliche Frage, aber ich bin halt kein Programmierer und würde es besser verstehen lernen.

 

By the way: kannst Du mir ein gutes Buch empfehlen, mit dessen Hilfe ich die PowerShell lernen kann? Ich meine jetzt nicht "PowerShell für Dummies", es darf schon ein echtes Fachbuch sein :P

 

Danke!

Link zu diesem Kommentar

Tja, es wäre ja zu schön...

 

Habe mich mit dem Scriptentwurf von samsam beschäftigt und ihn ausgebaut.

 

Nun bin ich darüber gestolpert, dass beim Import Umlaute und "ß" nicht ordnungsgemäß gelesen werden.

 

Ich hatte extra eine Funktion gebaut, die mir die Umlaute und das "ß" umwandelt, um aus Vornamen und Nachnamen dann den SAM Accountname, Mailadresse und die AD-Spezifischen Informationen (CN, DN) zu erzeugen. Selbst den bei Adelsnamen vorhandenen Leerschritt habe ich abgefangen und für die Mailadresse durch einen Punkt ersetzt.

 

So weit - so (un)gut.

 

Gibt es hier in der PowerShell eine Möglichkeit, aus der CSV-Datei die vorhandenen Umlaute und das "ß" sauber einzulesen?

 

Ich habe diese Frage bewusst nicht ins Scripting-Forum gestellt, da es sich immer noch um die ursprüngliche Aufgabenstellung handelt...

 

Wie immer besten Dank!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...