user_profil_loeschen.ps1
Neu erstellt.
This commit is contained in:
parent
5c484b57e4
commit
5260ed683b
48
Support/user_profil_loeschen.ps1
Normal file
48
Support/user_profil_loeschen.ps1
Normal file
@ -0,0 +1,48 @@
|
||||
# Definieren Sie den Namen des Remote-Computers
|
||||
$remoteComputer = Read-Host "Bitte geben Sie die Maschinennummer (Hostname oder IP) ein"
|
||||
|
||||
# Stellen Sie eine WMI-Verbindung zum Remote-Computer her
|
||||
$credential = Get-Credential # Hier werden Sie aufgefordert, Benutzername und Passwort einzugeben
|
||||
|
||||
# Hauptloop, um Benutzerprofile zu löschen
|
||||
do {
|
||||
# Abfrage der aktuellen angemeldeten Benutzer
|
||||
$currentlyLoggedInUser = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $remoteComputer -Credential $credential
|
||||
|
||||
# Ausgabe des aktuell angemeldeten Benutzers
|
||||
Write-Output "Aktuell angemeldeter Benutzer: $($currentlyLoggedInUser.UserName)"
|
||||
|
||||
# Abfrage aller Benutzerprofile
|
||||
$query = "SELECT * FROM Win32_UserProfile"
|
||||
$userProfiles = Get-WmiObject -Class Win32_UserProfile -ComputerName $remoteComputer -Credential $credential
|
||||
|
||||
# Ausgabe der Profilinformationen und Sammlung der Profilpfade in ein Array
|
||||
$profilePaths = @()
|
||||
foreach ($profile in $userProfiles) {
|
||||
Write-Output "Profil von Benutzer: $($profile.LocalPath)"
|
||||
$profilePaths += $profile.LocalPath
|
||||
}
|
||||
|
||||
# Der Benutzer wählt ein Profil, das gelöscht werden soll
|
||||
$selectedProfile = $host.ui.PromptForChoice("Wählen Sie ein Profil zum Löschen", "Wählen Sie das Benutzerprofil, das Sie löschen möchten:", $profilePaths, 0)
|
||||
|
||||
# Korrektes Formatieren des Pfades für die WMI-Abfrage
|
||||
$formattedPath = $profilePaths[$selectedProfile] -replace '\\', '\\'
|
||||
|
||||
# Bestätigen der Löschung
|
||||
$confirmation = $host.ui.PromptForChoice("Bestätigung", "Sind Sie sicher, dass Sie das Profil `'$formattedPath'` löschen möchten?", @("Ja", "Nein"), 1)
|
||||
|
||||
if ($confirmation -eq 0) {
|
||||
# Administrative Rechte sind erforderlich
|
||||
$deleteProfile = Get-WmiObject -Class Win32_UserProfile -Filter "LocalPath = '$formattedPath'" -ComputerName $remoteComputer -Credential $credential
|
||||
$deleteProfile.Delete()
|
||||
Write-Output "Profil `'$formattedPath'` wurde gelöscht."
|
||||
} else {
|
||||
Write-Output "Löschung abgebrochen."
|
||||
}
|
||||
|
||||
# Abfrage, ob der Benutzer ein weiteres Profil löschen möchte
|
||||
$continue = $host.ui.PromptForChoice("Weitermachen", "Möchten Sie ein weiteres Benutzerprofil löschen?", @("Ja", "Nein"), 1)
|
||||
} while ($continue -eq 0)
|
||||
|
||||
Write-Output "Programm beendet."
|
||||
Loading…
Reference in New Issue
Block a user