Durante o fim de semana eu li este artigo sobre o PowerShell Security na Enterprise. Eu decidi enquanto lendo isso, eu provavelmente deveria ter certeza de que as máquinas dos meus clientes possuíam o mais recente WMF instalado.

Supondo que este era apenas um artigo do KB, procurei WSUS para KB e não encontrei nada. Lendo o artigo do blog sobre a versão 5.1 e, em seguida, as instruções de Instalação e Configuração , vemos que o WMF 5.1 é lançado no Windows 7, mas são necessárias etapas manuais para instalá-lo.

O download vem como um arquivo ZIP com um script PowerShell (Install-WMF5.1.ps1) e um MSU para a arquitetura do PC.

Como eu tinha várias centenas de dispositivos para executar isso, eu decidi que queria automatizá-lo. Para fazer isso, eu decidi criar um GPO para instalar a Atualização e um filtro WMI para segmentar apenas os dispositivos que precisavam da atualização.

Download

O filtro WMI que criei verificou a versão do Windows e também a versão do arquivo PowerShell.exe.

select * from win32_operatingsystem where version like "6.1%"

SELECT * FROM CIM_Datafile WHERE Name = 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe' and VERSION like "6.1%"

WMI WMF 2.0

Isso direcionará apenas máquinas do Windows 7, onde a versão do PowerShell.exe é como 6.1. Como o WMF 2 possui uma versão exe do PowerShell do 6.1.7600.16385.

No GPO, criei dois itens, um de Preferência de Diretiva de Grupo para copiar o Install-WMF5.1.ps1 para a máquina, e o outro, uma tarefa agendada para executar o script.

Copy File

Eu editei o script PowerShell para copiar o pacote MSU de um servidor para o PC, o que nos permite ignorar o Bloqueio de Download Automático (o que eu estava recebendo ao usar o GPP para copiar o arquivo MSU para o PC além do Script)

Copy Script

Você poderia codificar esse link para o caminho do UNC, ou você poderia definir ‘servidor’ como uma variável e usar um PARAM para permitir a configuração em vários locais.

PARAM1

param2

A tarefa programada é bastante simples, está configurada para ser executada como SISTEMA, o gatilho é uma programação que eu defini (sábado e domingo das 10h) e a Ação é:

powershell.exe

-command ".\Install-WMF5.1.ps1 –AcceptEula"

Sch1

Se você adicionou um Servidor Param, você também adicionaria isso nos argumentos da tarefa agendada.

powershell.exe

-command ".\Install-WMF5.1.ps1 –AcceptEula –server Server1 "

Sch2

Eu também configurei o valor ‘Iniciar In’ para a localização do script, como eu vi problemas no passado ao executar um script com um espaço no caminho.

Eu não configurei a opção ‘allow reboot’ ( -allowReboot ), no caso de alguém estar trabalhando em sua máquina, pois o script será reiniciado sem aviso prévio ao usar essa opção. É improvável que alguém esteja trabalhando naquele momento em um sábado de curso … exceto lá estava eu.

Eu também configurá-lo para rodar novamente no domingo no caso de o GPO não atualizar a tempo para o sábado.

Uma vez que o script é executado, qualquer pessoa iniciou sessão ou, posteriormente, efetuando login, receberia esta mensagem para reiniciar o PC.

Restart your Computer

Além disso, criei um segundo GPO e WMI, para desativar a tarefa agendada e excluir o script quando a versão do PowerShell era 10.

SELECT * FROM CIM_Datafile WHERE Name = 'C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe' and VERSION like "10%"

WMF 3 e 4

Estas instruções funcionarão se os seus PCs ainda estiverem usando o WMF 2. Se você implantou o WMF 3 em suas máquinas, você precisará remover isso, antes que o WMF 5.1 possa ser instalado.

Se você estiver executando o WMF 3, sua versão do PowerShell.exe será 6.2 e seu sistema terá o KB2506143 instalado.

Mais uma vez você pode criar uma Tarefa agendada para remover a Atualização e Solicitar ao Usuário para reiniciar.

Wusa.exe /Uninstall /KB:2506143 /PromptRestart /Quiet /log:kb2506143.log

Após a remoção e reinicialização, a versão do PowerShell.exe voltará para 6.1 e nosso filtro WMI original entrará em ação e o GPO para atualização para o WMF 5 agora será aplicado a este computador.

Se você já implantou o WMF 4, basta executar o script de instalação para atualizar para o WMF 5.1, previsivelmente a versão do PowerShell.exe ao executar o WMF 4 é …. 6.3.

Anúncios