Top 10 comandos do PowerShell para Group Policy
Apr 11, 2019
Além da Group Policy Management Console (GPMC), a Microsoft fornece um conjunto de cmdlets do Windows PowerShell que você pode usar para gerenciar a Group Policy. Para usar os cmdlets do PowerShell da Group Policy, você deve ter o GPMC instalado no dispositivo onde executará os cmdlets. Para verificar se o módulo do PowerShell da Group Policy está instalado em um dispositivo, execute o comando abaixo, que exibirá todos os cmdlets da Group Policy disponíveis se o módulo estiver instalado.
Get-Command -Module GroupPolicy
Conteúdo relacionado selecionado:
Criando um Novo Objeto de Política de Grupo
Vamos começar criando um novo objeto de Política de Grupo (GPO). O comando abaixo cria um novo GPO chamado ‘Netwrix PCs’ e adiciona um comentário para descrever seu propósito:
New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"
O comando cria um GPO vazio sem configurações. Se você tem GPOs iniciais configurados no seu Active Directory domain, você pode criar um novo GPO baseado nas configurações deles. O seguinte comando cria um novo GPO chamado ‘Netwrix PCs’ baseado no GPO ‘Windows 10 MS Security Settings’:
New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"
Você pode opcionalmente vincular a GPO a um domínio, unidade organizacional (OU) do controlador de domínio ou site usando piping. O comando abaixo cria uma nova GPO e a vincula à OU Clients no domínio ad.contoso.com:
New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Para desvincular uma GPO, use o cmdlet Remove-GPLink:
Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Figura 1. Como vincular e desvincular uma GPO
Conteúdo relacionado selecionado:
Obtendo informações sobre uma GPO
Uma vez criado um GPO, você pode usar Get-GPO para retornar informações como status do GPO, tempo de criação e última modificação:
Get-GPO -Name "Netwrix PCs"
Se você deseja mais informações, encaminhe o objeto criado por Get-GPO para Get-GPOReport. O script abaixo cria um relatório em HTML que fornece informações sobre a GPO semelhantes ao que você poderia ver no Group Policy Management Console:
Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html
Figura 2. Relatório HTML com dados detalhados sobre uma GPO específica
Configurando as Configurações de Política de Grupo
Se você souber o local de uma configuração de Política de Grupo baseada no registro, poderá usar o cmdlet Set-GPRegistryValue para configurá-la.
As configurações de Política de Grupo baseadas no registro são aquelas que aparecem em Modelos Administrativos no GPMC. O Set-GPRegistryValue também pode ser usado para definir valores de registro que não são cobertos pelas configurações de Política de Grupo. Por exemplo, se você quiser configurar definições de registro para aplicativos de terceiros que não possuem um arquivo ADMX para Política de Grupo, o Set-GPRegistryValue é uma maneira rápida de definir as configurações necessárias. O seguinte comando define um tempo limite do protetor de tela de 300 segundos para o usuário conectado:
Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300
Você pode especificar configurações de configuração do computador ou do usuário usando Set- GPRegistryValue O caminho do registro no parâmetro -Key abaixo começa com “HKCU” (que significa “HKEY_CURRENT_USER”). Se você deseja configurar uma configuração de computador, substitua “HKCU” por “HKLM” (que se expande para HKEY_LOCAL_MACHINE).
Para obter informações detalhadas sobre uma chave de registro configurada em um GPO, use Get-GPRegistryValue:
Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"
Figura 3. Como obter informações detalhadas sobre uma chave de registro configurada em uma GPO
Para remover uma configuração do registro de uma GPO, use Remove-GPRegistryValue:
Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut
Os três cmdlets acima têm equivalentes em Group Policy Preference se você decidir usar Preferences em vez de Policies para definir chaves de registro: Set-GPPrefRegistryValue, Get-GPPrefRegistryValue, e Remove-GPPrefRegistryValue.
Aplicando configurações de Política de Grupo
Desde que o seu GPO esteja vinculado a um domínio, OU ou site, ele será aplicado aos objetos de usuário e computador abaixo de onde está vinculado. Mas se você quiser forçar uma Group Policy update em um servidor remoto ou outro dispositivo, você pode usar Invoke-GPUpdate. Executar Invoke-GPUpdate sem quaisquer parâmetros forçará uma atualização das configurações de usuário e computador no computador local. O comando abaixo força uma atualização da Group Policy no server1 apenas para as configurações de usuário:
Invoke-GPUpdate -Computer "adserver1" -Target "User"
Revisando quais GPOs são aplicados a um usuário ou computador
Para obter informações sobre quais GPOs são aplicados a um usuário ou computador, você pode gerar um relatório do Conjunto Resultante de Políticas (RSoP) usando o cmdlet Get-GPResultantSetOfPolicy. O comando abaixo gera um relatório para o computador chamado “dc1” e escreve os resultados no diretório c:temp:
Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html
Figura 4. Como obter informações sobre quais GPOs são aplicados a um usuário ou computador
Os cmdlets do PowerShell podem ser bastante úteis para gerenciar a Política de Grupo. No entanto, configurar as definições dentro dos GPOs usando PowerShell não é fácil porque as configurações da Política de Grupo não foram projetadas pensando em configuração baseada em texto.
Compartilhar em
Saiba Mais
Sobre o autor
Russell Smith
Consultor de TI
Consultor de TI e autor especializado em tecnologias de gestão e segurança. Russell tem mais de 15 anos de experiência em TI, escreveu um livro sobre segurança do Windows e coautorou um texto para a série Microsoft’s Official Academic Course (MOAC).
Saiba mais sobre este assunto
Criar usuários do AD em massa e enviar suas credenciais por e-mail usando PowerShell
Como criar, alterar e testar senhas usando PowerShell
Como adicionar e remover grupos AD e objetos nos grupos com PowerShell
Confianças no Active Directory
Ataques de ransomware ao Active Directory