• Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN
info@firstattribute.com
by FirstAttribute
Active Directory FAQActive Directory FAQ
  • Active Directory
    • AD Consulting
    • AD Design
      • Domain Name festlegen
      • Domain Struktur einrichten
      • Forest Struktur definieren
    • AD Management
    • AD Automation
      • Dynamic Access Control (DAC)
    • AD Federation Services
      • ADFS Betrieb
      • ADFS und Office365
      • ADFS und Cisco Unified Communications Manager
      • SAML und ADFS 2.0
  • Azure / M365
    • Azure AD
    • Microsoft 365 (O365)
  • Migration
    • Active Directory Migration
    • Exchange Migration
    • File Server Migration
    • Lotus Notes Migration
    • Novell Migration
  • Wissen
    • Alle Beiträge
    • Administration
    • PowerShell
    • Migration
    • Exchange
    • Tools
  • Kontakt
    • Wir über uns
    • Kontakt
  • EN

Powershell: Massenimport von Active Directory Benutzern aus einer SQL-Server Tabelle

Dez 18, 2013 (Letztes Update) | Posted by Peter Schäfer PowerShell, Programmierung |

 

In dem folgenden Beispiel wird gezeigt, wie man mit einem Powershell Script Benutzer im Active Directory anlegt, deren Namen in einer SQL-Datenbank gespeichert sind.

Das Ergebnis des Massenimports wird anschließend per Mail verschickt.
Dieses Script könnte zum Beispiel einmal pro Nacht neue AD-Konten aus einer HR-Datenbank anlegen.

Ich habe dieses Script bewusst einfach gehalten, um die Funktionen deutlicher erkennbar zu machen.

Voraussetzungen für die Ausführung sind

  • Powershell ab Version 2.0 (es werden keine ‚Spezial-Module‘ verwendet)
  • Zugriff auf die Datenbank
  • Rechte zum Anlegen eines User-Objekts im angegeben Benutzer-Container

 

Script: Bulk-Import von AD Usern aus SQL Server Tabelle

$mail = user@domain.com  <# Sender- und Empfänger-Mailbox für Import-Ergebnis #>

$smtpServer = “servername” <# SNMP-Server (muss angepasst werden)#>

$con = “Data Source=localhost\SQLEXPRESS;Initial Catalog=UserDB;Integrated Security=True” <# SQL-Verbindungszeichenfolge#>


<# Der Active-Direcory Container unter dem die neuen Konten angelegt werden #>

$containerDN = “LDAP://OU=Users,OU=DEN01,OU=US,DC=domain,DC=net”


<# Die SQL-Abfrage gegen die Datenbank… #>

$query = “SELECT  LogonName FROM LogonNames WHERE … “

$adapter = new-object system.data.sqlclient.sqlDataAdapter($query,$con)

$table = new-object System.data.dataTable

$adapter.Fill($table) <# Hier wird die eigentliche Abfrage durchgeführt… #>


<# Referenz auf den AD-Benutzer-Container erstellen… #>

$userContainer = New-Object System.DirectoryServices.DirectoryEntry($containerDN)

del $logFile -ErrorAction Ignore <# Löschen des Logfiles #>


<# Für alle Zeilen der Ergebnistabelle ausführen… #>

foreach($row in $table.Rows)

{

      $logonName = $row[“LogonName”]
<# Wert für Benutzername aus Tabellenspalte „LogonName“ auslesen…  #>

     try

     {

          <# Erstellen des AD-Benutzerkontos #>

          $newUser = $userContainer.Children.Add(“cn=$logonName“,”User”)

          $newUser.Properties[“samAccountName”].Value=$logonName

          $newUser.CommitChanges()

          $newUser.Path >> $logFile <#AD-Pfad des neuen Kontos in Logdatei #>

      }

catch [Exception]

       {

            <# Fehlerbehandlung #>

            “Error creating user $logonName” >>  $logFile

             $_ >> $logFile

        }

}


<# Versenden des Logfiles an eine Mailbox #>

Send-MailMessage -SmtpServer $smtpServer -From $mail -To $mail -Subject User-Import -Attachments $logFile

 

Erweiterungsmöglichkeiten:

In diesem Beispiel wird der Benutzer nur mit den notwendigsten Attributen „samAccountName“ und „cn“ angelegt. Das Ergebnis ist ein deaktiviertes Benutzerkonto ohne Kennwort.

Wenn weiter Eigenschaften aus der Datenbank genutzt werden sollen, sind folgende Änderungen notwendig:

$query = “select LogonName, Attribute1 from LogonNames”

Hinter der Zeile:

$newUser.Properties[“samAccountName”].Value=$logonName

Muss eine neue Zeile eingefügt werden:

$newUser.Properties[“ldapAttribute1”].Value=$row[“Attribute1”]

 

Hinweis:

Es werden schreibende Zugriffe auf das Active Directory ausgeführt!
Das Script sollte vor dem Produktiveinsatz sorgfältig getestet werden.
Der Autor übernimmt keinerlei Haftung für Datenverlust, unerwünschte Nebeneffekte oder sonstige Garantien. Das Risiko aus der Verwendung oder Leistung des Scripts trägt der Anwender.

Powershell AD SQL Mail

Powershell AD SQL Mail
Artikel weiterempfehlen:
  • teilen
  • tweeten
  • sharen
  • xingen
  • mailen
Artikel erstellt am: 20.12.2013
Tags: Active DirectoryDatenbankExportImportPowerShellSQL
0

You also might be interested in

PowerShell group policy cmdlets

Windows Powershell: Group Policy Cmdlets

Mrz 19, 2012

Der Windows Server 2008 R2, bzw. die Windows 7 Remote[...]

QMM AD – Resource Update mittels Powershell – PowerRUM

QMM AD – Resource Update mittels Powershell – PowerRUM

Nov 12, 2014

Bei einer Active Directory Migration müssen alle Clients, soweit diese[...]

E-Mail-Adresse mit PowerShell prüfen

E-Mail-Adresse mit PowerShell prüfen

Aug 27, 2019

Möchten Sie einen neuen Nutzer angelegen? Dann sollten Sie prüfen,[...]

Leave a Reply

<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>
Cancel Reply

Wer schreibt ?

Consultants und Entwickler der FirstAttribute arbeiten seit mehr als 20 Jahren in IAM-, Migrations- und Cloud-Transition-Projekten.
Zusammen verfügen Sie über einen umfangreichen, wertvollen Erfahrungsschatz im Bereich Active Directory und Azure AD und teilen diesen auf Active Directory FAQ.

Neueste Artikel

  • 6 Lösungen, wenn Outlook Abwesenheitsnotiz vergessen
  • Azure AD Connect installieren
  • LastLogon vs. LastLogonTimestamp
  • Teams Benennungsrichtlinien definieren
  • Bitlocker-Recovery Password mit PowerShell auslesen


FirstAttribute

AD Identity Management | Jobs

Kontakt aufnehmen

Sie haben eine Frage oder Anmerkung? Schicken Sie uns schnell eine Nachricht.

Nachricht senden
Jetzt AD Tasks vereinfachen und delegieren: FirstWare IDM-Portal

Folgen Sie uns

Kontakt

  • FirstAttribute AG
  • Am Büchele 18, 86928 Hofstetten, Germany
  • +49 89 215 442 400
  • https://www.firstattribute.com

Schlagwörter

.Net ACL Active Directory AD LDS AD Objekt Berechtigung Cloud cmdlets Delegation Domain Controller dynamicgroup dynamische Gruppen Exchange Exchange-Ordner Exchange-Postfach Exchange Migration Federation FirstWare Get-Mailbox Global Catalog Group Policy Gruppen Gruppenmitgliedschaft IDM-Portal LDAP lokale Gruppen Microsoft Azure Migration New-ADUser Novell NTFS O365 Office 365 PowerShell QMM QMM AD QMM Exchange Quest Migration Manager Schema Set-ADUser SID SID History Update Windows 10 Windows Server 2012 R2

Neueste Kommentare

  • E-Mail-Adresse mit PowerShell prüfen - Active Directory FAQ bei Primäre E-Mail-Adresse ändern mit PowerShell
  • PS-Basics: New-ADGroup, Set-ADGroup, Get-ADGroup bei AD PowerShell Basics 2: Get-ADUser
  • Get-ADUser: AD PowerShell Basics 1 - Active Directory FAQ bei AD PowerShell Basics 1: New-ADUser
Login
Impressum
Datenschutzerklärung

© 2021 · Active-Directory-FAQ by firstattribute.com

Prev Next