Remover perfil de usuário remotamente

Ivo Dias
1 min readJan 4, 2021

--

O objetivo desse script, é facilitar o processo de exclusão de usuários do Windows, fazendo-o de forma simplificado via linha de comando, remotamente.

Para fazermos isso, vamos usar uma classe dentro do Windows, chamada win32_userprofile, e dentro dela, um método, para fazer a exclusão.

Inicialmente, precisamos receber o usuário e converte-lo para um formato especifico do Windows, e armazenar em uma variável, para facilitar o uso. Vamos fazer isso usando o comando:

$objUser = New-Object System.Security.Principal.NTAccount(Read-Host -Prompt "Informe o usuario: ")

Em seguida, buscamos a identificação única do usuário, chamada SID, e registramos ela em uma variável, com o comando:

$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])

Depois disso, precisamos apenas saber em qual computador está o usuário, e substituir o Hostname ou o IP dele, pela palavra HOSTNAME no comando:

Get-WmiObject -ComputerName HOSTNAME win32_userprofile| Where-Object {$_.SID -eq $($strSID.Value)} | ForEach {$_.Delete()}

Explicando um pouco melhor ele, pegamos o objeto que representa o usuário dentro da classe e passamos como parâmetro a remoção dele. Como estamos removendo o usuário, ele não pode estar logado no momento da utilização do script.

Para acessar o código de exemplo, visite a publicação na galeria.

Para saber mais:
Win32_UserProfile class

--

--

Ivo Dias
Ivo Dias

Written by Ivo Dias

MCC, MSLA and Microsoft Community Moderator. Currently work with DevOps and write articles about automation, IT support and script development