Powershell: Borrar perfiles de usuario automáticamente
Hoy os dejo un script para automatizar el borrado periódico de perfiles en un sistema Windows.
Esto en cualquier sistema puede ser contraproducente, pero si te encuentras problemas con perfiles móviles que van dejando rastros por las VDAs de Citrix o sistemas parecidos, puede haceros que vuestros sistemas amanezcan más estables y con menos incidencias. Yo sólo lo usaría en momentos de problemas, no como una tarea periódica:
GITHUB: https://gist.github.com/raulunzue/2be89e0936d6d6b46caecfa6d12b7c37
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
########################################### ######### RAUL UNZUE - ELBLOGDENEGU ####### ########################################### #Script limpiar users para Citrix FSLOGIX # ########################################### # EMPEZAMOS LOG: Start-Transcript ("c:\scripts\logs\OWNER-ScriptLog{0:yyyyMMdd-HHmm}.txt" -f (Get-Date)) # CARPETA PERFILES $origen = "C:\Users" # LISTAR PERFILES Get-ChildItem $origen | Select-Object Name | Set-Content "c:\scripts\perfiles.txt" # Eliminar valores (Get-Content "c:\scripts\perfiles.txt") -replace ("@{Name=", "") -replace ("}","") | Set-Content "c:\scripts\perfiles.txt" # Quitamos de la lista los usuarios que no queremos que borre (Get-Content "c:\scripts\perfiles.txt") -replace ("Administrador", "") -replace ("runzue","") -replace ("Public","") -replace ("Default","") -replace ("pepe","") -replace ("svc_antivirus","") -replace ("svc_prueba","") | Set-Content "c:\scripts\perfiles.txt" # Limpiamos los espacios en blanco y exportamos a TXT (Get-Content "c:\scripts\perfiles.txt") | ? {$_.trim() -ne "" } | Set-Content "c:\scripts\perfiles.txt" # Pasamos contenido a variable para tratar el dato $perfiles= Get-Content "c:\scripts\perfiles.txt" # TRATAMOS LOS PERFILES SI EXISTEN if ($perfiles) { # RECORREMOS EL FICHERO ForEach ($p in $perfiles) { if($p){ # AGREGAR PERMISOS FULL CONTROL ADMINS DEL DOMINIO icacls.exe "c:\Users\$p" /grant:r "NEGU\Admins. del dominio:(OI)(F)" /T # BORRAMOS PERFIL Remove-Item -Path "C:\Users\$p" -Force -Recurse } # Cuando se acabe la lista else{ Write-Output "Todos los perfiles procesados" } } } else { Write-Output "No hay perfiles a eliminar" } # Borrar TXT Remove-Item "c:\scripts\perfiles.txt" # Paramos log Stop-Transcript |
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?