Active Directory Benutzer erstellen in PowerShell aus CSV-Datei

Benutzer Automatisch in Bulk erstellen mit New-AdUser aus Import-CSV-Datei.

Soll eine grosse Anzahl an Benutzern in Active Direc­tory automatisiert angelegt werden, beinhaltet auch hier die Power­Shell das adäquate vorgehen, um mehrere Benutzer mit New-AdUser über Import-Csv zu erstellen.

Dieses Tutorial zeigt die Anwendung von New-AdUser für das automatisierte Erstellen von Active Directory Benutzerkonten, durch Import der Objekt Daten aus einer CSV-Datei mit Import-Csv.

Bei der Migration wo Teile von Benutzerkonten aus einer Organisationseinheit (OU) aus einem Active Direc­tory Forest in ein neuen oder anderen Forest übernommen werden sollen, ermöglichen die Active Directory Module dies mit dem Cmdlet Get-AdUser für das User-Management, sowie das Anlegen neuer Benutzerkonten mit New-ADUser. Es werden insgesamt rund 50 Parameter unterstützt, deren Namen mit den Attributen im AD überein­stimmen.

Benutzer erstellen mit New-AdUser aus CSV-Datei

Ein einfacher Aufruf könnte so aussehen, wenn man wie hier einen neuen Benutzer mit dem SamAccountNameSebastian“ erstellt.

$Password = Read-Host "Enter a Password" -AsSecureString
New-ADUser -Name Sebastian -GivenName Sebastian -Surname Furrer -Path "OU=User,OU=Office,DC=Company,DC=com" -Enabled $True -AccountPassword $Password -ChangePasswordAtLogon $True 

Die PowerShell Befehlszeile erstellt ein Benutzer und übergibt mit dem Parameter AccountPassword ein Passwort, dieses zuvor eingegeben wurde. Es können zahlreiche weitere Attribute mit Werten angewendet werden. Für das einfache Benutzer anlegen reicht dieses Beispiel schon aus, damit sich der Benutzer an AD anmelden kann.

Benutzerexport und Import über CSV-Datei

Es lassen sich die Benutzer mittels Filter aus der OU in eine CSV-Datei exportieren, diese danach für den Benutzer Import zur Verfügung steht, für eine vorgesehene Active Directory Organisations­einheit.

Get-AdUser -Filter * -SearchBase "OU=User,OU=Office,DC=Company,DC=com" | Export-Csv -Path .\users.csv -NoClobber -Delimiter ";"

Bei einer grossen Anzahl an Benutzern wird man diese nicht einzeln anlegen wollen. Am besten eignet sich hier der Import von Daten aus der CSV-Datei. Es muss die Voraussetzung erfüllt sein, das die Spalten­überschriften in der CSV-Datei exakt mit den Namen der Parameter übereinstimmen. Eine mit Export-Csv exportierte Datei kann in etwa wie folgt aussehen.

Benutzerexport und Import über CSV-Datei. Benutzer erstellen mit New-AdUser csv-datei

  Wurde der Export mit Komma als Delimiter formatiert, Import-Csv mit Trennzeichen über Parameter Delimiter spezifizieren.

Eine foreach Schleife erstellt die Benutzer im vorgegeben OU-Kontext.

$Import = Import-CSV ".\users.csv" -Delimiter ";"
$OU = "OU=User,OU=Office,DC=Company,DC=com"
$Password = ConvertTo-SecureString "Initpass" -AsPlainText -Force

foreach ($user in $Import) {
  New-ADUser -Name $user.SamAccountName -GivenName $user.GivenName -Surname $user.Surname -Path $OU -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True -UserPrincipalName $user.UserPrincipalName
}

Die Befehlszeilen in PowerShell in demselben Verzeichnis ausführen wo die exportierte CSV-Datei („users.csv„) liegt, oder mit dem Parameter -Path der entsprechende Pfad zur Datei übergeben.

Windows PowerShell ISE Benutzer erstellen New-AdUser csv-datei

Sobald sich der neu angelegte Benutzer an AD anmeldet, erhält dieser die Aufforderung ein neues Kennwort einzugeben, hierdurch das initial Password („Initpass„) ersetzt wird.

Fazit

Das Active Directory Cmdlet New-ADUser erleichtert das Erstellen mehrerer Active Directory-Benutzer. Es können häufig verwendete Benutzereigenschaftswerte mit Parameter festgelegt werden. Mit der Verwendung des Cmdlet Import-Csv und New-ADUser ist es möglich, eine grössere Anzahl Active Directory-Benutzerobjekte zu erstellen. Die benutzerdefinierten Objekte werden aus einer durch Kommas getrennten CSV-Datei erstellt, die eine Liste von Objekteigenschaften enthält. Die Objekte werden über Pipe an New-ADUser gesendet, um die Benutzerobjekte mit Attributen zu erstellen. Die Hilfe wird mit get-help New-ADUser ausgegeben.

PHP Upgrade Installation mit Apache auf Debian 11

PHP 8.2 Upgrade und Installation unter Debian mit Apache

In diesem Tutorial wird beschrieben, wie man ein PHP 8.2 Upgrade schnell und einfach installiert. Für den Apache Webserver unter Debian 9, Debian 10 und Debian 11. PHP ist die weit verbreitete Server-Skriptsprache, für dynamische und interaktive Webseiten und Content Managegemt Systeme.

In nur 5 Schritte wird PHP 8.2 für Apache2 auf Debian installiert.

1. Debian als root aktualisieren

$ su -
$ apt update
$ apt upgrade -y && reboot

2. SURY PHP PPA Repository hinzufügen

SURY ist ein Drittanbieter-Repository, das aktuelle PHP Versionen für Debian GNU/Linux anbietet, dieses als root hinzugefügt wird.

$ apt -y install lsb-release apt-transport-https ca-certificates wget
$ wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list

3. PHP 8.2 auf Debian installieren

$ apt update
$ apt -y install php8.2
$ update-alternatives --set php /usr/bin/php8.2

  Es kann mehr als eine PHP Version auf dem System installiert sein, update-alternatives --set php [version] aktiviert die Version.

4. Wichtige PHP 8.2 Module auf Debian installieren

$ apt -y install php8.2-cli php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2

 5. PHP 8.2 Modul für Apache verfürgbar machen

$ apt -y install libapache2-mod-php8.2
$ systemctl reload apache2

Fertig! die Installation ist nun gemacht. Möchte man wissen, welche installierte PHP-Version und welche Module tatsächlich verfügbar sind, zeigt der nächste Abschnitt.

Die Installierte PHP Version überprüfen

$ php -v
PPHP 8.2.3 (cli) (built: Feb 14 2023 16:53:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.3, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.3, Copyright (c), by Zend Technologies

Die PHP Konfiguration anzeigen und ändern

Zur überprüfung wird die aktuelle PHP-Version und die Einstellungen angezeigt, in dem man eine .php-Datei mit folgendem Inhalt erstellt. Diese die Detail Einstellungen in Tabellenform im Webbrowser ausgibt.

<?php
phpinfo();
?>

Die Datei als phpinfo.php im Verzeichnis „/html“ speichern. Die neu erstellte .php-Datei anschliessend in einem Webbrowser öffnen.

http://meine-domain/phpinfo.php
phpinfo in PHP Upgrade Installation mit Apache auf Debian
Abbildung: http://meine-domain/phpinfo.php

Die systemweiten PHP Einstellungen findet man unter dem Pfad /etc/php, für änderungen mit Apache 2 editiert man die Datei php.ini.

$ vi /etc/php/8.2/apache2/php.ini

Wird die installierte PHP-Version nicht angezeigt, muss das Modul mit dem Apache helper, mit a2dismod aktiviert werden. Hier ist es php7.4 das deaktiviert wird, die entsprechende Versionsnummer ggf. ersetzen.

PHP Upgrade mit Apache auf Debian Überpüfen

$ a2dismod php7.4
$ a2enmod php8.2
$ systemctl restart apache2

Nach dem Wechsel der Apache 2 PHP-Module die phpinfo.php Seite erneut im Webbrowser öffnen.

Die für Apache 2 verfügbaren PHP-Module sind im Apache Webserver Pfad unter /etc/apache2/mods-available abrufbar.

$ ll /etc/apache2/mods-available/php*
-rw-r--r-- 1 root root 855 Jul  5  2020 /etc/apache2/mods-available/php7.3.conf
-rw-r--r-- 1 root root 102 Jul  5  2020 /etc/apache2/mods-available/php7.3.load
-rw-r--r-- 1 root root 855 Dec 20 22:32 /etc/apache2/mods-available/php7.4.conf
-rw-r--r-- 1 root root 102 Dec 20 22:32 /etc/apache2/mods-available/php7.4.load
-rw-r--r-- 1 root root 855 Dec 20 22:32 /etc/apache2/mods-available/php8.2.conf
-rw-r--r-- 1 root root 101 Dec 20 22:32 /etc/apache2/mods-available/php8.2.load

Die Apache 2 Module mit a2dismod deaktivieren, mit a2enmod wird ein Apache Modul aktiviert.

Aufschluss über die Modul Informationen gibt der Befehl apt info.

$ apt info libapache2-mod-php8.2

Die php Version einer Website kann auch in der Apache .htaccess Datei festgelegt werden.

Action php /cgi-php82/php
AddHandler php82 .php