HideShell e LTISuspend: Deployment Continua automaticamente ao reiniciar o computador

Olá Pessoal,

Usando o MDT para criar imagens de referencia ou até mesmo em ambiente de produção podemos usar duas opções bastante úteis, o parâmetro HideShell e o scritp LTISuspend.wsf, mas qual seria o problema em usar os dois ao mesmo tempo? a resposta é bem simples, não temos “nenhum” problema, ênfase na aspas no nenhum.

Coloquei dessa forma pois realmente não podemos chamar de problema ou bug do MDT quando usando essa configuração, mas sim, de um comportamento do MDT.

Entendendo o HideShell e o LTISuspend.wsf

Antes de começarmos a falar sobre como podemos modificar o comportamento do MDT quando usando o HideShell e o LTISuspend.wsf juntos, precisamos entender o que cada um deles faz durante o processo de Deployment quando definidos.

HideShell: Esse parâmetro é usado para controlar se o Windows Explorer será executado ou não durante o processo de Deployment de um novo computador, quando definido como YES o Windows Explorer será ocultado mostrando apenas a janela do MDT com a progress bar e ação de Task Sequence atual.

LTISuspend: Esse script suspende/pausa a Task Sequence que está sendo executada para que possamos executar tarefas e configurações de forma manual, o script cria um atalho na área de trabalho para que possamos reiniciar a Task Sequence e continuar com o processo de Deployment depois de terminar as tarefas manuais.

Comportamento do MDT usando HideShell e LTISuspend juntos

Quando é definido o HideShell=YES no CustomSettings.ini e o LTISupend.wsf na Task Sequence o Shell do Windows está oculto e ao executar a ação de Task Sequence LTISuspend o atalho para reiniciar a Task Sequence será criado no desktop do computador e o Shell do Windows será mostrado novamente, e podemos executar todas as tarefas e configurações manuais necessárias, mas se alguma dessa ação necessitar que o computador seja reiniciado? Fácil não é? Reinicia o computador e a Task Sequence continuará pausada pois não executamos o atalho para reiniciar a execução das mesma!

Teoricamente sim…

Ai que entra o comportamento do MDT, e isso está definido no script chamado Litetouch.wsf onde é feito uma validação se o Hideshell está definido como YES ou a Task Sequence está sendo executada em um Server Core, se alguma dessas condições forem atendidas é criada uma entrada no RunOnce do Registro do Windows.

Pra quem não sabe o que o RunOnce faz, é bem simples podemos adicionar entradas nesse registro, para que um script por exemplo seja executado logo que o computador for iniciado, e isso vai acontecer apena uma única vez, já que chaves RunOnce são executadas e depois removidas.

E o que isso tem haver com o comportamento do MDT quando usamos o HideShell e o LTISuspend juntos, tem tudo haver.

Pois o LiteTouch.wsf como mencionei ao detectar que o HideShell=YES no customsettings.ini vai adicionar uma chave no RunOnce apontando para C:\MININT\Scripts\LiteTouch.wsf como mostrado na figura 1.1

Figura1.1

Figura 1.1 – Parte do Script onde a chave RunOnce é criada

Concluindo a questão antes de fazermos a configuração para modificar esse comportamento do MDT, o  LTISuspend.wsf quando executado sem o HideShell vai aguardar a execução do atalho que está no desktop do computador que está sendo implantado, mesmo que esse computador seja reiniciado varias vezes de forma manual.

Configurando o MDT para aguardar a execução do Atalho do LTISuspend.wsf

1. Crie um script Powershell como nome de Remove-RK_LitetouchHideShell.ps1 e salve na pasta PSScritps (no meu ambiente foi salvo em D:\ProductionDS\Scripts\PSScripts).

2. Abra as propriedades da Task Sequence usada para Deployment de Produção (Deploy Windows 10 Enterprise x64 v1511 Custom Image) a selecione a aba Task Sequence.

Nota:

Essa configuração também pode ser feita na Task Sequence para criação de imagens

3. Vamos adicionar algumas ações no grupo de ações de task sequence chamad Custom Tasks, estou partindo do principio que o LTISuspend já esteja definido nesse grupo, conforme Figura 1.2.

Figura 1.2

Figura 1.2 – Ação de Pausa de Task Sequence usando o LTISuspen.wsf

4. Adicione uma ação de Task Sequence Run Command Line e adicione os seguintes parâmetros abaixo antes do Suspend Task Sequence:

Name: Remove Registry Key for LiteTouch

Command Line: powershell.exe -ExecutionPolicy Bypass -File “%SCRIPTROOT%\PSScripts\Remove-RK_LitetouchHideShell.ps1”

Figura 1.3

Figura 1.3 – Script adicionado a Task Sequence

5. Para finalizar, após o Suspend Task Sequence vamos adicionar a ação Restart Computer.

Figura 1.4

Figura 1.4 – Ação que reiniciará o computador após o Suspend Task Sequence for executado

Com essas configurações definidas na Task Sequence mesmo usando o HideShell=YES será possível fazer varias reinicializações manuais durante o LTISuspend.wsf, fazendo com que a Task Sequence continue pausada até que o atalho na Área de trabalho seja executado.

//Excelente Deployment

Eduardo Sena é Microsoft MVP Windows and Devices for IT, especialista em Windows Deployment Solutions em ambientes corporativos, sempre envolvido em ações na comunidade, comunnity leader no WSG – Window Study Group e Quintas da TI, Eduardo é conhecido por sua especialização com ferramentas para deployment como MDT, ADK, WDS e USMT.

1 Comentário

  1. Rogerio

    Funciona perfeitamente!!!

    Eu fiz o processo e deu certo Eduardo!!!

    Responder

Deixar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: