Powershell Benutzer und Gruppen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 39: Zeile 39:
 
*userdel.ps1
 
*userdel.ps1
 
<pre>
 
<pre>
 +
# PowerShell-Skript, um Benutzer gesammelt zu entfernen
 +
 +
param (
 +
    [string]$csvPath  # Pfad zur CSV-Datei mit Benutzernamen
 +
)
 +
 +
# CSV-Datei einlesen
 +
$users = Import-Csv -Path $csvPath
 +
 +
# Benutzer löschen
 +
foreach ($user in $users) {
 +
    $username = $user.Username
 +
 +
    # Benutzerkonto suchen und löschen
 +
    $adUser = Get-ADUser -Filter {SamAccountName -eq $username}
 +
    if ($adUser) {
 +
        Remove-ADUser -Identity $adUser -Confirm:$false
 +
        Write-Output "Benutzer $username wurde gelöscht"
 +
    } else {
 +
        Write-Output "Benutzer $username nicht gefunden"
 +
    }
 +
}
 
</pre>
 
</pre>

Version vom 29. Oktober 2024, 08:50 Uhr

User anlegen

CSV Datei (users.csv)
Username,Password,Role
sisko,12345-Xinux,Admin
worf,12345-Xinux,Admin
dax,12345-Xinux,Admin
rome,12345-Xinux,User
nog,12345-Xinux,User
quark,12345-Xinux,User
Skript
  • useradd.ps1
# PowerShell-Skript, das den CSV-Dateipfad als Parameter nimmt

param (
    [string]$csvPath  # CSV-Dateipfad als Eingabeparameter
)

# CSV-Datei einlesen
$users = Import-Csv -Path $csvPath

# Benutzer erstellen
foreach ($user in $users) {
    $username = $user.Username
    $password = ConvertTo-SecureString -String $user.Password -AsPlainText -Force

    # Benutzer im Standard-Container erstellen
    New-ADUser -Name $username -SamAccountName $username -UserPrincipalName "$username@deineDomain.local" `
               -AccountPassword $password -Enabled $true -ChangePasswordAtLogon $false
    Write-Output "Benutzer $username erstellt"
}
Aufruf
  • .\Skriptname.ps1 -csvPath users.csv

User löschen

Skript
  • userdel.ps1
# PowerShell-Skript, um Benutzer gesammelt zu entfernen

param (
    [string]$csvPath  # Pfad zur CSV-Datei mit Benutzernamen
)

# CSV-Datei einlesen
$users = Import-Csv -Path $csvPath

# Benutzer löschen
foreach ($user in $users) {
    $username = $user.Username

    # Benutzerkonto suchen und löschen
    $adUser = Get-ADUser -Filter {SamAccountName -eq $username}
    if ($adUser) {
        Remove-ADUser -Identity $adUser -Confirm:$false
        Write-Output "Benutzer $username wurde gelöscht"
    } else {
        Write-Output "Benutzer $username nicht gefunden"
    }
}