Olá pessoal, tudo bem? Espero que sim!

Hoje irei apresentá-los a mais um exemplo de script que pode ser muito útil quando o assunto é segurança local de uma estação de trabalho ou servidor. O script da vez garante que o grupo de administradores local estará com os devidos membros de acordo com as suas especificações de segurança.

Como funciona? Basicamente o script irá retornar os usuários membros do grupo de administradores local e irá compará-lo a sua lista de usuários declarados no script. Se houver um usuário na lista declarada que não estiver no grupo, o script irá adicioná-lo como administrador local. Em contrapartida, se houver algum usuário do grupo que não estiver na lista declarada, este será removido do grupo. Caso nenhum dos dois critérios sejam atendidos, o script não tomará nenhuma ação.

Utilizei neste script a declaração de um parâmetro para especificar uma array de usuários que necessitam ser membros do grupo de administradores local, os cmdlets Get-WinSystemLocale para definir o idioma da interface do Windows (basicamente para definir a tradução do nome da conta de grupo dos Administradores Local), Get-LocalGroupMember, Add-LocalGroupMember, Remove-LocalGroupMember,  para listar, adicionar e remover membros do grupo de admins local, Compare-Object para realizar a comparação de objetos listados, o operador de loops Foreach-Object para realizar a análise em cada item do objeto e os operadores condicionais If e Else para realizar simples testes lógicos para indicar as orientações e ações que deverão ser tomadas.

Validação de Grupo de Administradores Local

Como já é de praxe, criei o mesmo script como função para facilitar o seu uso, caso você queira torná-lo um comando nativo ao incluí-lo no repositório do Powershell.
Obs: Se você receber a mensagem de retorno: “Ocorreu um erro não especificado: status = 3221225764“, significa que você não previu nos valores do parâmetro -HelpDeskAdmins, o usuário built-in (conta interna) Administrador, ou o respectivo usuário renomeado por política de grupo que faça esse papel no grupo. Desta forma, o script tentará remover este usuário retornando o erro em questão. Lembrando que o Administrador built-in pode ser renomeado por política de grupo e até mesmo desabilitado, mas nunca poderá ser removido do grupo de administradores local, pois, ser membro deste grupo é um atributo característico desta conta.

DICA: Você pode utilizar este script como uma resiliência à política de grupo de administradores local. Pense em casos onde eventualmente um computador falha em receber especificamente a política que define os administradores do sistema. Neste cenário, o script poderá atuar como uma contingência da aplicação da política. Você poderá distribuí-lo como um script de logon para ser validado a cada vez que um usuário abre uma sessão, ou entregando o script no computador e criando uma tarefa agendada para ser executada em determinado agendamento, ou mesmo com algum recurso de execução de scripts programada por ferramentas de Gerenciamento de Sistemas como o System Center Configuration Manager, Altiris, Flexera, KACE, etc.

É isso aí galera, por hoje é só. Até o próximo post!

Dúvidas, sugestões, críticas sobre o blog? Entre em contato aqui!

Gostou? Deixe seu comentário e não se esqueçam de curtir a página do Facebook na barra lateral!