GPO: executar o script de logon do PowerShell após o explorer.exe ter sido carregado

5

Sei que existe a configuração GPO "Configuração do computador = > Modelos de administrador = > Sistema = > Scripts = > Executar scripts de logon de forma síncrona ". Isso, no entanto, garante que os scripts de logon sejam executados antes de o Windows Explorer iniciar o carregamento (quando ativado).

Eu preciso do oposto. Eu quero garantir que o explorer.exe foi carregado com êxito e executar o script de logon do PowerShell posteriormente. Isso se deve a algumas dependências estranhas de um aplicativo que preciso disparar.

Eu tentei desativar a configuração que, de acordo com a descrição, deve permitir executar o explorador de arquivos e o script simultaneamente. Infelizmente, isso não acontece (sim, eu fiz reboots e gpupdates ...)

Então, tentei adicionar uma função chamada wait-for-explorer () ao meu script de logon do PowerShell. Ele dorme em um loop while até que o explorer.exe esteja em execução. No entanto, isso parece não funcionar corretamente.

Qual é a melhor e mais limpa maneira de resolver isso? Existe uma configuração de GPO que estou negligenciando?

É assim que o código se parece:

Function Wait-For-Explorer
{   
    $process = 'explorer.exe'
    $waitTime = 1

    While ($owner.User -ne $env:USERNAME) 
    {   
        try 
        {     
            $owner = (Get-WmiObject -class win32_process | where { $_.ProcessName -eq $process }).GetOwner() | Select -Property User
        }
        catch
        {
            Write-Host "Zzzzz...."
            Start-Sleep -Seconds $waitTime
        }
    }

    Write-Host "Process ${process} is running..."
}

Atualizar

Encontrei a resposta para minha pergunta e por que não existe essa opção fornecida pela Microsoft. A razão é que, de acordo com o artigo da Technet Como a Política de Grupo Principal Funciona , o processamento da Diretiva de Grupo é síncrono, o que significa que a Diretiva de Grupo do computador é concluída antes que a caixa de diálogo de logon seja apresentada e a Diretiva de Grupo do usuário seja concluída antes de o shell estar ativo e disponível para o usuário para interagir com ele. Isso, por sua vez, significa que não há possibilidade (direta) de o mecanismo de diretiva de grupo iniciar um processo após o shell do usuário ter sido carregado ...

    
por Matze 04.04.2014 / 14:06

3 respostas

1

Eu apenas tropecei na seguinte configuração:

Configuração do usuário = > Políticas = > Modelos Administrativos = > Sistema = > Logon = > Execute esses programas no logon do usuário

Ao chamar meus scripts daqui, tudo funciona. Isso (parece) agir da mesma maneira que o "Logon Script" dentro do objeto de usuário do AD. Ele espera que o File Explorer termine de carregar e depois executa os scripts ... então a missão foi cumprida! Obrigado a todos!

    
por 14.04.2014 / 11:49
1

Você já tentou executá-lo como uma tarefa agendada com um gatilho de "logon do usuário"? Isso pode eliminar a necessidade de uma função como essa.

SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
    [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]

Description:
    Enables an administrator to create scheduled tasks on a local or
    remote system.

Parameter List:
<...many switches delted...>
/SC   schedule     Specifies the schedule frequency.
                   Valid schedule types: MINUTE, HOURLY, DAILY, WEEKLY,
                   MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.

    
por 04.04.2014 / 16:22
1

Se você observar como o MDT ( link ) faz isso, ele é colocado como atalho em pasta "startup" do usuário. Dessa forma, você está praticamente garantido que o script não será executado até que o usuário tenha feito logon e a área de trabalho seja apresentada. Se você cavar um pouco na pasta de scripts do MDT, encontrará scripts prontos para criar esses atalhos.

    
por 06.04.2014 / 13:13