Eliminar perfiles de usuario en una computadora remota en PowerShell

Hay algunas opciones disponibles cuando se trata de limpiar perfiles de usuario antiguos y obsoletos en una computadora remota. Puede activar esta Política de grupo que elimina automáticamente cualquier perfil de usuario anterior a un cierto período de días al reiniciar el sistema, o usar una herramienta de línea de comandos como Delprof2. Y, por supuesto, también puede usar PowerShell para lograr lo mismo.

Para enumerar todos los perfiles de usuario en una computadora local, simplemente podemos usar Get-WmiObject con Win32_UserProfile clase.

Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.Special -ne 'Special'} | Select-Object LocalPath, Loaded

Agregue un interruptor de computadora y obtendrá una lista de perfiles de usuario en una computadora remota.

Get-WmiObject -Class Win32_UserProfile -Computer $computer | Where-Object {$_.Special -ne 'Special'} | Select-Object LocalPath, Loaded

Tenga en cuenta que no puede eliminar ningún perfil de usuario cargado. Deberá cerrar la sesión de ese usuario o reiniciar la computadora antes de eliminarlo.

Para eliminar un perfil de usuario específico, simplemente use el cmdlet Eliminar-WmiObject. Pero el problema es que no puede enviarle un resultado para llevar a cabo el proceso de eliminación.

La forma de hacerlo es usar Invoke-Command para ejecutar el comando directamente en la computadora remota. Poniendo todo junto

$Computer = Read-Host "Please Enter Computer Name: "
$user = Read-Host "Enter User ID: "

Invoke-Command -ComputerName $computer -ScriptBlock {
    param($user)
    $localpath="c:users" + $user
    Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq $localpath} | 
    Remove-WmiObject
} -ArgumentList $user

La belleza de usar PowerShell para hacer esto es que elimina a un usuario en particular en varias computadoras. También puede ejecutar esto como parte de su rutina de salida de empleados, entre muchas otras cosas.

Por último, pensé mencionar que para que los scripts de PowerShell funcionen en computadoras remotas, hay dos requisitos previos que deben cumplirse.

  • WinRM debe estar habilitado en la computadora remota
  • Necesita las credenciales adecuadas para ejecutar el script en la computadora remota.

Deja un comentario