Ich müsste nächste Woche eine ganze Reihe von Rechnern säubern..
dabei wollte ich das ganze per powershell scripts vereinfachen..
undzwar soll das alte Profil restlos samt benutzerordner gelöscht werden und neu erstellt.
Habe da schon ein Script zusammengestellt, allerdings wird der Benutzerordner in einigen Fällen nicht komplett gelöscht und ich muss ihn danach im Explorer noch händig löschen da reste übrig bleiben...
Das möchte ich verhinden.
Ausserdem möchte ich dass bei der erstellung des neuen Profils der Assistent mit den Datenschutzfragen unterdrückt wird und alle automatisch verneint werden, so dass ich nur das Profil lade und ohne Benutzereingaben auf dem Desktop lande.
Wie lässt sich sowas bewerkstelligen??
Hier einmal soweit das Script:
dabei wollte ich das ganze per powershell scripts vereinfachen..
undzwar soll das alte Profil restlos samt benutzerordner gelöscht werden und neu erstellt.
Habe da schon ein Script zusammengestellt, allerdings wird der Benutzerordner in einigen Fällen nicht komplett gelöscht und ich muss ihn danach im Explorer noch händig löschen da reste übrig bleiben...
Das möchte ich verhinden.
Ausserdem möchte ich dass bei der erstellung des neuen Profils der Assistent mit den Datenschutzfragen unterdrückt wird und alle automatisch verneint werden, so dass ich nur das Profil lade und ohne Benutzereingaben auf dem Desktop lande.
Wie lässt sich sowas bewerkstelligen??
Hier einmal soweit das Script:
Code:
$ErrorActionPreference = "SilentlyContinue"
function Remove-LocalUserCompletely {
Param(
[Parameter(ValueFromPipelineByPropertyName)]
$Name
)
process {
$user = Get-LocalUser -Name $Name -ErrorAction SilentlyContinue
# Remove the user from the account database
Remove-LocalUser -SID $user.SID
# Remove the profile of the user (both, profile directory and profile in the registry)
Get-CimInstance -Class Win32_UserProfile | ? SID -eq $user.SID | Remove-CimInstance
}
}
# Example usage:
Write-Output "Benutzer und Daten werden gelöscht... Bitte warten..."
Remove-LocalUserCompletely -Name 'Schule' -ErrorAction SilentlyContinue
Remove-LocalUserCompletely -Name 'schule' -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schule\*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schule\*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schule" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schule" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schule*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schule-*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schule*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schule-*" -recurse -force -ErrorAction SilentlyContinue
Remove-LocalUserCompletely -Name 'Schüler' -ErrorAction SilentlyContinue
Remove-LocalUserCompletely -Name 'schüler' -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schüler\*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schüler\*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schüler" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schüler" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schüler*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\Schüler-*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schüler*" -recurse -force -ErrorAction SilentlyContinue
Remove-item "C:\Users\schüler-*" -recurse -force -ErrorAction SilentlyContinue
Write-Output "-------------------------------------------------"
Write-Output "prefetch wird gelöscht.."
Write-Output "-------------------------------------------------"
Remove-item "C:\Windows\Prefetch\*" -recurse -force -ErrorAction SilentlyContinue
dir C:\Windows\Prefetch
Write-Output "-------------------------------------------------"
Write-Output "Noch vorhandene Profilordner:"
Write-Output "-------------------------------------------------"
Write-Output "Bitte Überprüfen ob Userfolder und User gelöscht"
Write-Output "Falls nicht, im Explorer Manuell löschen."
Write-Output "Danach Enter Drücken um fortzufahren."
Write-Output "-------------------------------------------------"
Write-Output "Noch vorhandene Profilordner:"
dir C:\Users
Get-LocalGroupMember -Group "Benutzer"
Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.Special -ne 'Special'} | Select-Object LocalPath, Loaded
Write-Output "-------------------------------------------------"
Write-Output "Bitte erst fortsetzen wenn Profil und Profilordner Schule komplett gelöscht ist."
pause
Write-Output "Erstelle neues Profil..."
New-LocalUser -Name "Schule" -PasswordNeverExpires -AccountNeverExpires -UserMayNotChangePassword
Enable-LocalUser -Name "Schule"
Add-LocalGroupMember -Group "Benutzer" -Member "Schule"
Write-Output "-------------------------------------------------"
Write-Output "Bitte Überprüfen ob User Schule neu erstellt"
Write-Output "-------------------------------------------------"
Get-LocalGroupMember -Group "Benutzer"
pause
logoff