MS-001 - Como Padronizar Estações de Trabalho Windows com Scripts PowerShell e Políticas Locais (GPO)

ID: KB-MS-001

Responsável: Thiago Amaral, TI

Status: Publicado

Última Atualização: 06/12/2024


Propósito

Instruir o time de Suporte TI Nível 1 sobre como aplicar configurações padronizadas em estações de trabalho Windows, utilizando um script PowerShell para ajustes de sistema e o Editor de Política de Grupo Local (gpedit.msc) para reforçar a imagem corporativa.

Aplica-se a

  • Time de Suporte TI Nível 1 da Fictor.

  • Estações de trabalho com sistema operacional Windows (Edições Enterprise/Education/Server são necessárias para algumas políticas específicas).

Pré-requisitos

  • Acesso com privilégios de administrador na máquina Windows.

  • O script PowerShell SetSystemDefaults.ps1 salvo em C:\Install.

  • Arquivos de personalização (imagem de lock screen, tema, wallpaper) salvos em locais definidos (ex: C:\Install e C:\Custom).

  • A ferramenta LGPO.exe salva em C:\LGPO para backup e restauração de políticas.


Instruções

O procedimento é dividido em três partes: a configuração e uso do script PowerShell, a aplicação de políticas via gpedit.msc e o método para fazer backup e restaurar essas configurações.

Parte 1: Preparação e Script PowerShell

1. Configurar a Política de Execução do PowerShell

Para permitir que o script seja executado, a política de execução do PowerShell precisa ser ajustada.

  1. Abra o PowerShell como Administrador.

  2. Verifique as políticas atuais com o comando:

    Get-ExecutionPolicy -List
  3. Defina a política de execução para `Unrestricted` no escopo da máquina local. Isso permite a execução de scripts locais sem assinatura.

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine

2. Conteúdo do Script SetSystemDefaults.ps1

O script a seguir, que deve ser salvo em C:\Install\SetSystemDefaults.ps1, realiza diversas configurações de sistema.

# Função para desativar o protetor de tela
function Disable-Screensaver {
    Write-Host "Desativando o protetor de tela..."
    Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "ScreenSaveActive" -Value 0 -Force
}

# Função para configurar os tempos de espera do plano de energia
function Configure-PowerPlanTimeouts {
    Write-Host "Configurando os tempos de espera do plano de energia..."
    $displayTimeoutAC = 600   # 10 minutos quando na tomada
    $displayTimeoutDC = 300   # 5 minutos na bateria
    $lockTimeoutSeconds = 180 # 3 minutos para bloqueio de tela

    powercfg /CHANGE monitor-timeout-ac $displayTimeoutAC
    powercfg /CHANGE monitor-timeout-dc $displayTimeoutDC
    powercfg /CHANGE standby-timeout-ac $lockTimeoutSeconds
    Write-Host "Tempos de espera do plano de energia configurados."
}

# Função para desativar recursos da barra de tarefas
function Disable-TaskbarFeatures {
    Write-Host "Desativando Copilot, Visão de Tarefas e Widgets..."
    if (-not (Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer")) {
        New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies" -Name "Explorer" -Force | Out-Null
    }
    Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowTaskViewButton" -Value 0 -Force
}

# Função para forçar a página inicial da intranet no Edge
function Enforce-Intranet {
    $edgePolicyPath = "HKLM:\SOFTWARE\Policies\Microsoft\Edge"
    if (-not (Test-Path -Path $edgePolicyPath)) {
        New-Item -Path $edgePolicyPath -Force | Out-Null
    }
    Set-ItemProperty -Path $edgePolicyPath -Name "RestoreOnStartup" -Value 4
    $urlListPath = Join-Path -Path $edgePolicyPath -ChildPath "RestoreOnStartupURLs"
    if (-not (Test-Path -Path $urlListPath)) {
        New-Item -Path $urlListPath -Force | Out-Null
    }
    Set-ItemProperty -Path $urlListPath -Name "1" -Value "[https://fictor.sharepoint.com](https://fictor.sharepoint.com)"
    Write-Host "Política aplicada. Microsoft Edge abrirá a intranet na inicialização."
}

# Execução principal do script
Disable-Screensaver
Configure-PowerPlanTimeouts
Disable-TaskbarFeatures
Enforce-Intranet

Parte 2: Configuração via Editor de Política de Grupo Local (gpedit.msc)

3. Executar o Script na Inicialização do Sistema

  1. Pressione Win + R, digite gpedit.msc e pressione Enter.

  2. Navegue até: Configuração do Computador > Configurações do Windows > Scripts (Inicialização/Encerramento).

  3. Dê um duplo clique em Inicialização.

  4. Na aba Scripts do PowerShell, clique em Adicionar... e insira o caminho do script: C:\Install\SetSystemDefaults.ps1.

4. Aplicar Políticas de Computador (Personalização)

  1. No gpedit.msc, navegue até Configuração do Computador > Modelos Administrativos > Painel de Controle > Personalização.

  2. Habilite e configure as seguintes políticas: * Forçar uma imagem padrão específica de tela de bloqueio e de logon: * Habilite e insira o caminho local da imagem (ex: C:\Windows\Web\Screen\img104.jpg). * Impedir alteração de imagem da tela de bloqueio e de logon. * Carregar um tema específico: * Habilite e insira o caminho do arquivo de tema (ex: C:\Install\FCT.deskthemepack). * Impedir alteração de plano de fundo do menu iniciar.

  3. Navegue até Configuração do Computador > Modelos Administrativos > Componentes do Windows > Microsoft Edge.

  4. Habilite e configure as seguintes políticas: * Configurar páginas iniciais: Insira a URL desejada (ex: fctconsig.sharepoint.com).

5. Aplicar Políticas de Usuário (Papel de Parede)

  1. No gpedit.msc, navegue até Configuração do Usuário > Modelos Administrativos > Área de Trabalho > Active Desktop.

  2. Habilite a política Papel de parede da Área de Trabalho.

  3. Configure o caminho da imagem (ex: C:\Custom\Wallpaper.jpg) e o estilo (ex: Preencher).

Parte 3: Backup e Restauração das Políticas Locais

6. Fazer Backup das Políticas (LGPO.exe)

  1. Abra o PowerShell como Administrador e navegue até a pasta da ferramenta: cd C:\LGPO.

  2. Crie uma pasta para o backup: mkdir C:\BackupGP.

  3. Execute o comando para criar o backup:

    .\LGPO.exe /b "C:\BackupGP"

7. Restaurar Políticas a partir de um Backup

  1. Copie a pasta de backup (BackupGP) para o C:\ da máquina de destino.

  2. Abra o PowerShell como Administrador e navegue até C:\LGPO.

  3. Execute o comando para restaurar as políticas:

    .\LGPO.exe /g "C:\BackupGP"

Resultado Esperado

Uma estação de trabalho Windows configurada com as políticas corporativas: protetor de tela desativado, timeouts de energia padronizados, interface da barra de tarefas limpa, página inicial do Edge forçada para a intranet, e imagem de tela de bloqueio e papel de parede personalizados e bloqueados para o usuário.

Solução de Problemas

  • Problema/Erro: A imagem da tela de bloqueio não é aplicada. * Solução: Conforme a documentação da política, a configuração "Forçar uma imagem padrão específica de tela de bloqueio e de logon" só se aplica às edições Enterprise, Education e Server do Windows. Ela não funcionará nas edições Pro ou Home.

  • Problema/Erro: Scripts PowerShell não executam, mesmo com a política definida. * Solução: Execute Get-ExecutionPolicy -List para verificar se uma política mais restritiva em um escopo de maior precedência (como MachinePolicy vinda de um domínio) não está sobrepondo sua configuração local.

Artigos Relacionados

  • Não se aplica.

Anexos

  • Não se aplica.

Referências

  • Guia Para Leigos - Hebert.

Histórico de Revisões

Data
Versão
Responsável
Mudança

25/09/2024

v1.0

Thiago Thalisson

Confecção do documento.

13/11/2024

v2.0

Thiago Thalisson

Adicionando políticas locais.

21/11/2024

v2.1

Thiago Thalisson

Adiciona “Enforce-Intranet” no SetSystemDefaults.ps1.

06/12/2024

v2.2

Thiago Thalisson

Modificada forma como o script inicial é executado via GPO de Inicialização.

Last updated