remove_user_group.ps1
Neu hinzugefügt.
This commit is contained in:
commit
6839c95664
76
Active_Directory/remove_user_group.ps1
Normal file
76
Active_Directory/remove_user_group.ps1
Normal file
@ -0,0 +1,76 @@
|
||||
# Variablen
|
||||
$GroupName = "A-EMM-Mail" # Name der AD-Gruppe, aus der die Benutzer entfernt werden
|
||||
$LogFilePath = "C:\Temp\RemoveUsersLog.txt" # Pfad zur LOG-Datei
|
||||
|
||||
# Sicherstellen, dass der Log-Ordner existiert
|
||||
if (-not (Test-Path (Split-Path $LogFilePath))) {
|
||||
New-Item -ItemType Directory -Path (Split-Path $LogFilePath) -Force
|
||||
}
|
||||
|
||||
# Log-Funktion definieren
|
||||
function Write-Log {
|
||||
param (
|
||||
[string]$Message,
|
||||
[string]$Type
|
||||
)
|
||||
$Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||
$LogEntry = "$Timestamp - $Type - $Message"
|
||||
Add-Content -Path $LogFilePath -Value $LogEntry
|
||||
}
|
||||
|
||||
# Importiere das Active Directory Modul (falls noch nicht geladen)
|
||||
try {
|
||||
Import-Module ActiveDirectory -ErrorAction Stop
|
||||
} catch {
|
||||
Write-Error "Active Directory Modul konnte nicht geladen werden."
|
||||
Write-Log -Message "Active Directory Modul konnte nicht geladen werden." -Type "ERROR"
|
||||
exit
|
||||
}
|
||||
|
||||
# Wird für das Dialog Fenster benötigt
|
||||
try {
|
||||
Add-Type -AssemblyName System.Windows.Forms -ErrorAction Stop
|
||||
} catch {
|
||||
Write-Error "Windows Forms konnte nicht geladen werden."
|
||||
Write-Log -Message "Windows Forms konnte nicht geladen werden." -Type "ERROR"
|
||||
exit
|
||||
}
|
||||
|
||||
# OpenFileDialog erstellen
|
||||
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
|
||||
$OpenFileDialog.InitialDirectory = [Environment]::GetFolderPath('Desktop') # Standardverzeichnis
|
||||
$OpenFileDialog.Filter = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*" # Filter für Dateitypen
|
||||
$OpenFileDialog.Title = "Wählen Sie eine Datei aus"
|
||||
|
||||
# Dialog anzeigen und Datei auswählen
|
||||
if ($OpenFileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
|
||||
$CSVFilePath = $OpenFileDialog.FileName
|
||||
Write-Host "Ausgewählte Datei: $CSVFilePath"
|
||||
Write-Log -Message "Ausgewählte Datei: $CSVFilePath" -Type "INFO"
|
||||
} else {
|
||||
Write-Host "Keine Datei ausgewählt."
|
||||
Write-Log -Message "Keine Datei ausgewählt." -Type "ERROR"
|
||||
exit
|
||||
}
|
||||
|
||||
# CSV-Datei einlesen
|
||||
try {
|
||||
$Users = Import-Csv -Path $CSVFilePath
|
||||
Write-Log -Message "CSV-Datei erfolgreich eingelesen: $CSVFilePath" -Type "INFO"
|
||||
} catch {
|
||||
Write-Error "Fehler beim Einlesen der CSV-Datei: $_"
|
||||
Write-Log -Message "Fehler beim Einlesen der CSV-Datei: $_" -Type "ERROR"
|
||||
exit
|
||||
}
|
||||
|
||||
# Benutzer aus der Gruppe entfernen
|
||||
foreach ($User in $Users) {
|
||||
try {
|
||||
Remove-ADGroupMember -Identity $GroupName -Members $User.Username -Confirm:$false
|
||||
Write-Host "Benutzer $($User.Username) wurde erfolgreich aus der Gruppe '$GroupName' entfernt."
|
||||
Write-Log -Message "Benutzer $($User.Username) wurde erfolgreich aus der Gruppe '$GroupName' entfernt." -Type "SUCCESS"
|
||||
} catch {
|
||||
Write-Error "Fehler beim Entfernen des Benutzers $($User.Username): $_"
|
||||
Write-Log -Message "Fehler beim Entfernen des Benutzers $($User.Username): $_" -Type "ERROR"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user