Konvertieren von Benutzernamen in Großbuchstaben in Active Directory mit Powershell

Active Directory (AD) Management kann eine wesentliche Aufgabe für IT-Experten in Organisationen sein. Viele Prozesse wie Benutzerverwaltung, Durchsetzung von Sicherheitsrichtlinien und Systemintegration erfordern den effektiven Einsatz von AD.

In diesem Artikel werde ich über „ADConvertUserNametoUpper“ sprechen, ein PowerShell-Skript, das die Vor- und Nachnamen von AD-Benutzern automatisch in Großbuchstaben umwandelt und mögliche Nullwerte meldet.

Active Directory-Benutzername zum oberen Zweck

ADConvertUserNametoUpper, Benutzer in AD GivenName (Name) und Surname Beim Konvertieren von (Nachnamen-)Feldern in Großbuchstaben wird geprüft, ob eines dieser Felder leer ist, und diese Situationen werden gemeldet.

  1. Großschreibungsumrechnung: Es wandelt die Vor- und Nachnamen der Benutzer in Großbuchstaben um und berücksichtigt dabei die Unterstützung türkischer Zeichen.
  2. Nullprüfung: Es erkennt Benutzer, deren Vor- oder Nachnamenfelder leer sind, und meldet diese Informationen mit roten Warnmeldungen.
  3. Das Skript kann innerhalb einer bestimmten Organisationseinheit (OU) oder im gesamten Verzeichnis ausgeführt werden.
Das Skript listet die Benutzer innerhalb der angegebenen Organisationseinheit mithilfe des Active Directory-Moduls auf. Für jeden Benutzer GivenName ve Surname Felder werden überprüft. Wenn eines dieser Felder null ist, werden der Benutzername und die leere Domäne in der Konsole mit einer roten Warnmeldung angezeigt. Nicht-Null-Felder werden in Großbuchstaben umgewandelt und in AD aktualisiert.

Active Directory-Benutzernamen in Obernamen umwandeln

Ich habe es für meine eigenen Bedürfnisse entwickelt. Active Directory-Benutzernamen in Obernamen umwandeln Sie können über Github oder über den Codeblock unten auf das Skript zugreifen.

<#
    .SYNOPSIS
    Converts all user first names and last names in a specified OU to uppercase, checks for null values, and reports them.

    .DESCRIPTION
    This script is designed to traverse a specified Organizational Unit (OU) in Active Directory and update all user first and last names to uppercase. It checks for null values in the GivenName and Surname fields, reports these entries, and updates the fields if they are not null. The script uses Turkish culture settings for correct uppercase conversion.

    .PARAMETER ouPath
    Specifies the LDAP path of the Organizational Unit where the user accounts are located.

    .EXAMPLE
    PS> .ADConvertUserNametoUpper.ps1 -ouPath "OU=Users,DC=example,DC=com"

    .NOTES
    Author: Cengiz YILMAZ
    Title: Microsoft MVP - MCT
    Created on: [5/9/2024]
    Blog: https://cengizyilmaz.net
    Version: 1.0

    .COMPONENT
    Requires ActiveDirectory module.
#>

# OU Path
$ouPath = "OU=fixcloud-test.com,OU=HC-Systems,DC=fixcloud,DC=com,DC=tr"

# Retrieve all users in the OU
$users = Get-ADUser -Filter * -SearchBase $ouPath -Property GivenName, Surname, SamAccountName

# Set the Turkish culture settings
$culture = [System.Globalization.CultureInfo]::CreateSpecificCulture("tr-TR")

# Convert and update each user's first and last name according to Turkish characters
foreach ($user in $users) {
    $updateNeeded = $false

    # Check GivenName
    if ($user.GivenName -ne $null) {
        $newGivenName = $user.GivenName.ToUpper($culture)
        Set-ADUser -Identity $user.SamAccountName -GivenName $newGivenName
    } else {
        Write-Host "GivenName değeri boş: Kullanıcı - $($user.SamAccountName)" -ForegroundColor Red
        $updateNeeded = $true
    }

    # Check Surname
    if ($user.Surname -ne $null) {
        $newSurname = $user.Surname.ToUpper($culture)
        Set-ADUser -Identity $user.SamAccountName -Surname $newSurname
    } else {
        Write-Host "Surname değeri boş: Kullanıcı - $($user.SamAccountName)" -ForegroundColor Red
        $updateNeeded = $true
    }

    # If no update was made, report that no update was done for the user
    if (-not $updateNeeded) {
        Write-Host "Kullanıcı güncellendi: $($user.SamAccountName)" -ForegroundColor Green
    }
}

Wird in Ihrer Active Directory-Umgebung der Fehler „Sicherheitsdatenbank auf dem Server verfügt über kein Computerkonto“ angezeigt? Die Lösung finden Sie im folgenden Artikel.

https://cengizyilmaz.net/security-database-on-the-server-does-not-have-a-computer-account-for-this-workstation-trust-relationship/


Ähnliche Artikel – Konvertieren von Benutzernamen in Großbuchstaben in Active Directory mit Powershell

Kommentar