marka 584 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 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 Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 Natürlich klappt das. Hier ein Beispiel aus der Technet Gallery http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Create-Active-7e6a3978 Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 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. Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 20. Februar 2014 Autor Melden Teilen Geschrieben 20. Februar 2014 @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 ;). Zitieren Link zu diesem Kommentar
Doso 77 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 Du hast leider nicht gesamt welche Version des AD verwendest. Ich finde aber die Lösung mit Powershell erheblich mächtiger und logischer als die alten Kommandozeilentools. Klappten tut beides. Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 (bearbeitet) 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 20. Februar 2014 von samsam Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 20. Februar 2014 Autor Melden Teilen Geschrieben 20. Februar 2014 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. Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 (bearbeitet) @marka: Das kannst Du mit Set-ADUser im zweiten Schritt machen. @samsam: Mit csvde läuft man, wenn man viele Felder beim Benutzer ausgefüllt haben will, leicht in das Zeilenlimit. Daher bin ich da kein Fan von. Have fun!Daniel bearbeitet 20. Februar 2014 von Daniel -MSFT- Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 20. Februar 2014 Melden Teilen Geschrieben 20. Februar 2014 (bearbeitet) 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 20. Februar 2014 von samsam 1 Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 20. Februar 2014 Autor Melden Teilen Geschrieben 20. Februar 2014 @samsam: Danke, ich werd's morgen mal in der Testumgebung checken, ob's klappt. Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 21. Februar 2014 Autor Melden Teilen Geschrieben 21. Februar 2014 @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! Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 21. Februar 2014 Autor Melden Teilen Geschrieben 21. Februar 2014 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! Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 21. Februar 2014 Melden Teilen Geschrieben 21. Februar 2014 In welchem Format ist denn die CSV-Datei gespeichert? ASCII, ANSI, MS-DOS-Layout? Probier sie mal mit Notepad zu Öffnen und speichere sie im Unicode-Format ab. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 21. Februar 2014 Melden Teilen Geschrieben 21. Februar 2014 Encoding dürfte dir helfen. http://www.msxfaq.de/code/powershell/pscsv.htm http://powershell.com/cs/forums/p/346/455.aspx Vorletztes Posting: http://social.technet.microsoft.com/Forums/de-DE/e3485ebc-6acc-4379-bf1e-460125d694a1/liste-per-powershell-in-eine-csv-exportieren Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 21. Februar 2014 Autor Melden Teilen Geschrieben 21. Februar 2014 @Daniel: Das kann ich im Moment gar nicht beantworten, komme gerade vom Biike-Brennen (Nordfriesische Tradition zur Verabschiedung des Winters). Schaue am Montag mal nach und werde sie explizit in Unicode abspeichern. @Sunny: Werde mir das Encoding mal anschauen, danke! Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.