WINDOWS: Maneiras de administrar uma conta de usuário local

Existem várias maneiras de administrar uma conta de usuários local no Windows. A opção escolhida depende apenas do que for mais rápido para você e se você deseja, então vamos demostrar algumas possibilidades.

1º método netplwiz | control userpasswords2

Você pode chamar/executar esse recuso de diversas formas, por exemplo:

1 – Pressione as teclas Win + R do seu teclado e na janela de comando digitar netplwiz ou control userpasswords2 e clicar no botão OK.

2 – Na janela que surge “Contas de Usuário“, você adicionar, remover ou alterar uma conta, em nosso exemplo vamos alterar uma conta existe, clique no nome de usuário atual e selecione Propriedades.

3 – Navegue até a aba Geral (1), lá você pode alterar as descrições do usuário selecionado, já na aba Associação de Grupo (2) você pode alterar o grupo de acesso ao qual o usuário pertence.

2º método lusrmgr.msc

Outra forma de você ter acesso as propriedades de uma conta de usuário local é Gerenciador de Usuários e Grupos Locais “lusrmgr.msc“, nessa opção você tem mais opções de recursos de administração da conta.

1 – Pressione as teclas Win + R do seu teclado e na janela de comando digitar lusrmgr.msc e clicar no botão OK.

2- Clique duas vezes na pasta Usuários na parte esquerda da janela vai exibir uma lista de todos os usuários.

3- Agora, clique duas vezes no nome da conta do usuário para abrir a janela de “Propriedades de Suporte” e lá você poderá fazer as alterações que deseja, na aba Geral veja que agora você tem opções como bloqueio e desativação de conta, bem como gerenciamento da senha.

Na aba “Membro de” você pode alterar o grupo de acesso ao qual o usuário pertence.

Na aba “Perfil” você pode definir o local onde os arquivos do perfil do usuário será guardado, script de logon e mapeamento de rede.

E se você clicar com o botão auxiliar do mouse em cima da conta você ainda terá mais opções (2) com (Re)Definir a senha, excluir a conta e outras opções.

3º método prompt de comando NET USER

ATENÇÃO: O prompt de comando dele ser executado com elevação de administrador.

Criar um usuário no CMD (Prompt de Comando) do Windows pode ser uma tarefa útil para administradores de sistemas ou para automatizar processos. Neste artigo, forneceremos exemplos de scripts para criar usuários utilizando comandos do CMD.

Digite o comando net user /? para conhecer as opções disponíveis.

net user /?

Use o comando abaixo para listar os usuários locais do computador:

net user

Para visualizarmos informações de um usuário local executamos o comando:

net user nome_usuario

Para visualizarmos os usuários de um grupo de usuário executamos o comando net localgroup nome_doGrupoDeUsuario. Se for nome com espaços coloque entre aspas: “Fulano de Tal”

net localgroup nome_doGrupoDeUsuario

Para adicionar um usuário local sem senha digite:

net user nome_usuario /add

Para adicionar um usuário local com senha digite:

net user nome_usuario senha_usario /add

Para alterar a senha de um usuário local digite:

net user nome_usuario nova_senha

Ou você pode digitar:

net user nome_usuario *

Para adicionar um usuário local ao Grupo de usuário digite:

net localgroup nome_Grupo nome_usuario /add

Para desativar/ ativar uma conta digite:

net user nome_usuario /active:no | yes

Para impedir/ permitir que o usuário realize a alteração da senha:

net user nome_usuario /passwordchg:no | yes

Para configurar para a conta do usuário expire em 06/04/2023:

net user nome_usuario /expires:06/04/2023

Para configurar para que a senha do usuário nunca expire:

net user nome_usuario /expires:never

Para define que o usuário Marcos não / requer senha para logar:

net user nome_usuario /passwordreq:no | yes

Para define que o usuário pode apenas se logar de Segunda á Sábado das 08:00 as 18:00hs:

net user nome_usuario /times:Se-Sá,08:00-18:00

Para permite que o usuário logue em qualquer horário.

net user nome_usuario /times:ALL

Para descobrir qual foi o Dia e Hora do Último logon do usuário.

net user nome_usuario | findstr /B /C:"Último logon"

Para excluir um usuário local:

net user nome_usuario /delete

Tarefas com Grupo de usuários

Digite o comando net localgroup para listar todos os grupos locais existentes no computador.

net localgroup

Criando o grupo local PenTest.

net localgroup PenTest /add

Adicionando o usuário ao grupo PenTest.

net localgroup PenTest nome_usuario /add

Deletando o grupo local Pentest.

net localgroup PenTest /del

Parâmetros opcionais:

Para acrescentar o campo Nome Completo e Descrição:

net user nome_usuario senha /add /fullname:"Nome Completo" /comment:"Descrição do usuário"

Para editar o nome completo ou a descrição, digite:

net user nome_usuario /fullname:"Novo nome Completo" /comment:"Nova descrição do usuário"

O exemplo a seguir adiciona uma conta de usuário para um usuário cujo nome completo é Jay Jamison e cujo nome de conta de usuário é jayj, com direitos de logon das 8h às 17h, de segunda a sexta-feira (sem espaços nas designações de horário), uma senha obrigatória (Cyk4 ^g3B) e o nome completo do usuário:

net user jayj Cyk4^g3B /add /passwordreq:yes /times:monday-friday,8am-5pm /fullname:"Jay Jamison"

Sintaxe do comando Net user

net user [ { | *} []] [/domain]
net user [ { | *} /add [] [/domain]]
net user [ [/delete] [/domain]]

Parâmetros que podem ser usados:

Sintaxe de opção de linha de comandoDescrição
/ativo:{não | sim}Habilita ou desabilita a conta do usuário. Se a conta do usuário não estiver ativa, o usuário não poderá acessar os recursos do computador. O padrão é sim (ou seja, ativo).
/comentário:”<Texto>”Fornece um comentário descritivo sobre a conta do usuário. Este comentário pode ter até 48 caracteres. Coloque o texto entre aspas.
/código do país:<NNN>Usa os códigos de país/região do sistema operacional para implementar os arquivos de idioma especificados para a Ajuda e mensagens de erro de um usuário. Um valor 0 significa o código padrão de país/região.
/expira:{{<MM/DD/AAAA> | <DD/MM/AAAA> | <mmm,dd,AAAA>} | nunca}Faz com que a conta do usuário expire se você especificar a data. As datas de expiração podem estar nos formatos [MM/DD/AAAA], [DD/MM/AAAA] ou [mmm,dd,AAAA], dependendo do código do país/região. Observe que a conta expira no início da data especificada. Para o valor do mês, você pode usar números, soletrar ou usar uma abreviatura de três letras (ou seja, janeiro, fevereiro, março, abril, maio, junho, julho, agosto, setembro, outubro, novembro, dezembro). Você pode usar dois ou quatro números para o valor do ano. Use vírgulas ou barras para separar partes da data. Não use espaços. Se você omitir <AAAA>, será assumida a próxima ocorrência da data (ou seja, de acordo com a data e hora do seu computador). Por exemplo, as seguintes entradas serão equivalentes se inseridas entre 10 de janeiro de 1994 e 8 de janeiro de 1995:9 de janeiro1/9/959 de janeiro de 19951/9
/nome completo:”<Nome>”Especifica o nome completo de um usuário em vez de um nome de usuário. Coloque o nome entre aspas.
/homedir:<Caminho>Define o caminho para o diretório inicial do usuário. O caminho deve existir.
/passwordchg:{sim | não}Especifica se os usuários podem alterar suas próprias senhas. O padrão é sim .
/passwordreq:{sim | não}Especifica se uma conta de usuário deve ter uma senha. O padrão é sim .
/profilepath:[<Caminho>]Define um caminho para o perfil de logon do usuário. Este caminho aponta para um perfil de registro.
/scriptpath:<Caminho>Define um caminho para o script de logon do usuário. <Path> não pode ser um caminho absoluto. <Caminho> é relativo a %systemroot%\System32\Repl\Import\Scripts.
/times:{<Dia>[<-Dia>][,<Dia>[-<Dia>]],<Hora>[-<Hora>][,<Hora>[-<Hora>]][;] | todos}Especifica os horários em que os usuários têm permissão para usar o computador. <Tempo> está limitado a incrementos de uma hora. Para os valores <Dia>, você pode soletrar os nomes dos dias ou usar abreviações (ou seja, M,T,W,Th,F,Sa,Su). Você pode usar a notação de 12 ou 24 horas para horas. Se você usar a notação de 12 horas, use AM e PM ou AM e PM. Todos os valores significam que um usuário sempre pode fazer logon. Um valor nulo (em branco) significa que um usuário nunca poderá fazer logon. Separe dia e hora com vírgulas e unidades separadas de dia e hora com ponto e vírgula (por exemplo, M,4AM-5PM;T,13PM-3PM ). Não use espaços ao designar horários.
/usercomment:”<Texto>”Especifica que um administrador pode adicionar ou alterar o “Comentário do usuário” da conta. Coloque o texto entre aspas.
/estações de trabalho:{<NomedoComputador>[,…] | *}Lista até oito estações de trabalho nas quais um usuário pode fazer logon na rede. Separe várias entradas na lista com vírgulas. Se /workstations não tiver nenhuma lista ou se a lista for um asterisco (*), os usuários poderão efetuar logon em qualquer computador.

4º método usando WMIC

Podemos gerenciar contas de usuário em um computador Windows usando comandos WMIC. Você pode encontrar comandos para várias operações.

O utilitário WMIC (linha de comando WMI) foi preterido a partir de Windows 10, versão 21H1, e a partir da versão de canal semestral 21H1 do Windows Server. Esse utilitário foi substituído pelo Windows PowerShell para WMI (confira Capítulo 7 – Como trabalhar com o WMI). Essa substituição se aplica somente ao utilitário WMIC (linha de comando WMI). O próprio WMI (Instrumentação de Gerenciamento do Windows) não é afetado. Confira também os recursos do Windows 10 que não estamos mais desenvolvendo.

Listar contas de usuário:

wmic useraccount get name

O comando acima listará os nomes de login de todos os usuários no computador local. Para imprimir o nome de login e o nome completo, podemos executar o comando abaixo.

wmic useraccount get name,fullname

Bloquear/ Desbloquear conta de usuário:

wmic useraccount where name='username' set disabled=false | true

Remova o requisito de senha para fazer login:

wmic useraccount where name='username' set PasswordRequired=false

Renomear conta de usuário:

wmic useraccount where name='username' rename newname

Impedir que o usuário altere a senha:

wmic useraccount where name='username' set passwordchangeable=false

Para saber o SID Digite o comando:

WMIC useraccount get name, sid

Caso você já tenha o nome do usuário e preciso apenas do SID pode usar o comando WMIC com o parâmetro WHERE NAME=NOME“, substituindo a palavra NOME pelo nome de usuário a ser identificado:

wnic useraccount where name="nome" get sid

5º método usando Powershell

O PowerShell é uma ferramenta poderosa e flexível para administração, aqui nós veremos apenas alguns comando básicos.

Microsoft fornece uma coleção de cmdlets chamada Microsoft.PowerShell.LocalAccounts . Anteriormente, você precisava baixá-lo e importá-lo explicitamente para o PowerShell e também instalar o Windows Management Framework 5.1; nos sistemas operacionais Windows Server 2016 e Windows 10, a coleção de cmdlets está incluída como módulo padrão.

Existem 15 cmdlets no módulo LocalAccounts . Você pode ver a lista completa executando o seguinte comando:

Get-Command -Module Microsoft.PowerShell.LocalAccounts
  • Add-LocalGroupMember — Adicione um usuário ao grupo local
  • Disable-LocalUser —Desativa uma conta de usuário local
  • Enable-LocalUser — Habilite uma conta de usuário local
  • Get-LocalGroup — Veja as preferências do grupo local
  • Get-LocalGroupMember — Veja a lista de todos os membros do grupo local
  • Get-LocalUser — Veja as preferências de uma conta de usuário local
  • New-LocalGroup — Crie um novo grupo local
  • New-LocalUser — Crie uma nova conta de usuário local
  • Remove-LocalGroup — Remova um grupo local
  • Remove-LocalGroupMember — Remove um membro de um grupo local
  • Remove-LocalUser — Remova uma conta de usuário local
  • Rename-LocalGroup — Renomeie um grupo local
  • Rename-LocalUser — Renomeie uma conta de usuário local
  • Set-LocalGroup — Altere as configurações de um grupo local
  • Set-LocalUser — Altere as configurações da conta de um usuário local

Vamos ver como você pode usar esses comandos para executar tarefas comuns relacionadas ao gerenciamento de usuários locais

Primeiro, vamos obter uma lista de todas as contas de usuários locais na máquina. Usaremos o cmdlet Get-LocalUser :

Get-LocalUser

Como você pode ver, temos duas contas de usuários locais, e uma delas está desabilitada (aquela que tem “Falso” na coluna “Ativado”).

Se quiser gerar todas as propriedades e seus valores para uma conta de usuário local, você precisará usar o cmdlet Get-LocalUser com os seguintes parâmetros:

Get-LocalUser -Name ‘username’ | Select-Object *

Para obter o valor de um atributo de conta de usuário local específico, digite seu nome após o parâmetro Select-Object . Neste exemplo, queremos saber o valor do atributo PasswordLastSet para a conta com o nome de usuário “suporte”:

Criando um usuário local com PowerShell

Vamos criar um novo usuário com a ajuda do cmdlet New-LocalUser . Este cmdlet pode criar os seguintes tipos de contas de usuário:

  • Contas de usuários locais do Windows
  • Contas da Microsoft
  • Contas do Azure Active Directory

Primeiro você vai criar uma variável para armazenar a senha da conta. Ao criar uma conta de usuário local, nunca digite a senha como texto simples; sempre converta-o em uma string segura usando o parâmetro AsSecureString ou ConvertTo-SecureString . Aqui está o comando para criar uma nova conta de usuário local:

$password = Read-Host -AsSecureString

Após pressionar a tecla você deve digitar uma senha para a conta, agora digite o comando abaixo para criar uma nova conta de usuário utilizando a senha que foi criada.

New-LocalUser -Name "LazyUser" -Password $password -FullName "Lazy User" -Description "Test user"

Caso deseje criar uma conta de usuário sem senha basta digitar o comando abaixo:

New-LocalUser -Name 'User02' -Description 'Description of this account.' -NoPassword

Em um ambiente Windows 10, os usuários podem autorizar em suas contas da Microsoft, para que possamos criar uma nova conta de usuário local vinculada às credenciais de uma conta da Microsoft. Use o script a seguir para fazer isso (observe que você não precisa digitar a senha porque ela está armazenada na nuvem da Microsoft):

New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"

Para criar uma conta local vinculada ao Azure AD, use o seguinte comando:

New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Descrição "Conta do Azure AD"

Para renomear uma conta local digite:

Rename-LocalUser -Name "User02" -NewName "AdminContoso02"

Alterar a senha ou as propriedades da senha de um usuário local com o PowerShell

Para alterar a senha de uma conta de usuário local, precisamos usar o cmdlet Set-LocalUser . Vamos alterar a senha do administrador local:

$password = Read-Host -AsSecureString<br>Set-LocalUser -Name 'LazyUser' -Password $password –Verbose

Para definir que a senha nunca expira para um usuário local com PowerShell, precisamos executar o seguinte script:

Set-LocalUser -Name 'LazyUser' –PasswordNeverExpires $False

Desabilita uma conta de usuário local.

O Disable-LocalUser cmdlet desabilita contas de usuário locais. Quando uma conta de usuário é desabilitada, o usuário não pode fazer logon.

Esse comando desabilita a conta de usuário chamada Admin02.

Disable-LocalUser -Name "Admin02"

Esse comando obtém a conta de convidado interna usando Get-LocalUsero e a passa para o cmdlet atual usando o operador de pipeline(|). Esse cmdlet desabilita essa conta.

Get-LocalUser Guest | Disable-LocalUser

Excluindo uma conta de usuário local com PowerShell

Para remover uma conta de usuário local, use o cmdlet Remove-LocalUser :

Remove-LocalUser -Name “AdminContoso02”

Gerenciando grupos locais com PowerShell

Agora vamos voltar nossa atenção dos usuários locais para os grupos locais. Primeiro, vamos obter uma lista de todos os grupos em nosso Windows Server:

Get-LocalGroup

Adicionando um grupo local com PowerShell

Agora vamos criar um novo grupo:

New-LocalGroup -Nome 'Usuários Netwrix' -Descrição 'Grupo de usuários Netwrix'

Adicionando usuários a um grupo local com PowerShell

Para adicionar um usuário (ou grupo) a um grupo local, precisamos usar o cmdlet Add-LocalGroupMember. Por exemplo, suponha que desejamos adicionar usuários ao grupo Administradores local, mas não queremos adicioná-los um por um. Vamos adicionar um grupo aos Administradores locais, nomeadamente o grupo “Usuários Netwrix”:

Add-LocalGroupMember -Grupo 'Administradores' -Member ('Netwrix','Usuários Netwrix') –Verbose

Se o seu computador ou servidor fizer parte do domínio, você também poderá adicionar contas de domínio e grupos a grupos locais para conceder a esses usuários direitos locais especiais no servidor. Adicione-os usando o formato “DomainNameUser” (para um usuário) ou “DomainNameDomain Group” (para um grupo).

Visualizando a associação de um grupo específico com PowerShell

Agora vamos listar todos os membros de um determinado grupo local:

Get-LocalGroupMember -Grupo 'Usuários Netwrix'

Como você pode ver, o comando mostra todas as contas e grupos locais que são membros do grupo “Usuários Netwrix”. Embora apenas contas e grupos locais estejam listados aqui, este comando também mostrará quaisquer usuários e grupos de domínio, bem como todas as contas do Microsoft e do Azure AD.

Visualizando todos os grupos dos quais um usuário é membro usando o PowerShell
Para listar todos os grupos dos quais um determinado usuário é membro, executaríamos o seguinte script:

foreach ($LocalGroup em Get-LocalGroup){
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue){
  $LocalGroup.Nome
  }
}

Removendo um grupo local com PowerShell

Para remover uma conta de usuário local de um grupo, você precisa usar o cmdlet Remove-LocalGroupMember :

Remove-LocalGroupMember -Grupo 'Usuários Netwrix' –Membro 'convidado'

Gerenciando usuários e grupos locais remotamente com PowerShell

Se quiser gerenciar contas e grupos de usuários locais remotamente, você precisará conectar-se às estações de trabalho remotas via WinRM usando os cmdlets Invoke-Command e Enter-PSSession . Por exemplo, se quisermos gerar a associação do grupo Admin local remotamente em vários computadores, precisamos executar o seguinte script:

$pesquisa = nova-pssessão -computador pcname1,pcname2,pcname3<br>invocar-command -scriptblock {Get-LocalGroupMember -Group 'Administradores'} -session $search -hidecomputername | selecione * -excluir RunspaceID | out-gridview -title "LocalAdmins"

Como você pode ver, é bastante fácil gerenciar grupos e usuários locais via PowerShell, mas para garantir a segurança, a conformidade e a continuidade dos negócios, é essencial auditar todas essas alterações.

Mais a frente daremos mais exemplos, por hoje ficamos por aqui.

Gostou? Se tiverem algumas sugestões, dica ou se ficou com alguma dúvida sobre este tutorial, não tem problema! Basta comentar no post que iremos responder suas dúvidas assim que for possível.

Fonte: postsinfo, 100security, Net user | Microsoft Learn, wmic | Microsoft Learn, chcamp17, windows-commandline, Microsoft.PowerShell.LocalAccounts Module – PowerShell | Microsoft Learn, netwrix, jotelulu, yudicezar, purainfo, lazyadmin, wellingtonagapto, jotelulu

Deixe um comentário