Como contornar ou alterar a política de grupo de tempo limite da tela quando não estiver no domínio?

5

Foi-me pedido que procurássemos uma solução para os nossos utilizadores de computadores portáteis remotos que estão a tentar fazer apresentações no Powerpoint e no Excel quando estão nas instalações do cliente. Estamos executando um ambiente Server 2008 / Win 7. Temos uma política de grupo que bloqueia o PC de todos após cinco minutos de inatividade e exige uma senha para efetuar login novamente. Foi-me perguntado se posso alterar essa configuração para usuários em laptops quando eles fazem login, mas não estão no domínio localmente. Eles gostariam de poder ajustá-lo para que a tela não seja bloqueada quando eles estiverem fazendo apresentações em PP, Word ou Excel. Tanto quanto eu sei powerpoint diables o screensaver enquanto no modo de tela cheia, mas eu não sei como conseguir isso com os outros programas. Eu tentei olhar para o modo de apresentação nos laptops, mas por causa da diretiva de grupo a configuração para "desabilitar a proteção de tela" está desativada. Alguma ideia? Obrigado.

    
por Joe B 19.02.2014 / 16:11

2 respostas

4

Eu consegui demonstrar para mim mesmo que a ferramenta presentationsettings que eu sugeri originalmente "respeita" as configurações da Diretiva de Grupo que impedem que um usuário altere sua proteção de tela. Eu não estava ciente desse comportamento, mas certamente faz sentido, uma vez que os usuários só usariam essa ferramenta para se isentar de proteções de tela quando nada relacionado à apresentação estivesse acontecendo.

Como @ HopelessN00b menciona, você pode querer alterar a Diretiva de Grupo, como ela se aplica aos laptops "remotos". Você precisará invocar o processamento de diretivas de loopback porque as configurações do protetor de tela são por usuário, não por computador. O Processamento de Política de Loopback permite que você aplique as configurações do usuário a um computador, independentemente do usuário que fez o login.

O recurso é, infelizmente, confuso para muitas pessoas. Ele tem um par de diferentes "modos" (Merge versus Replace) que tornam ainda mais confuso. Para o seu aplicativo, você pode criar um link de um GPO para uma unidade organizacional "Remote Laptop Comptuers" que permite o Loopback Policy Processing no modo "Merge" em sua seção "Computer Configuration" e, em sua seção "User Configuration", define o protetor de tela propriedades para o que você quiser. Quando a próxima dessas máquinas for reinicializada (porque a alternância de não-loopback para loopback requer uma reinicialização - a atualização da política em segundo plano não a habilitará), você verá as máquinas começarem a selecionar as configurações do protetor de tela deste novo GPO.

Falta de escrever algum tipo de programa de serviço do lado do cliente para acessar o registro do usuário e alterar o valor de restrição da proteção de tela da Diretiva de Grupo (já que o usuário não pode fazê-lo por conta das permissões de registro). preso em uma situação onde você vai ter que escolher o menor dos males e desativar as restrições de proteção de tela para usuários em computadores laptop, usar algum "jiggler de mouse" de terceiros ou software de simulação de teclado ou apenas dizer aos usuários para viver com isso.

Editar:

Existe um grande número de programas de terceiros que podem fazer o que você está procurando, mas há certa "elegância" em fazer coisas com apenas componentes internos do sistema operacional.

Aqui está um pequeno programa VBScript, adequado para execução por wscript.exe (significando que você poderia implantar este w / Group Policy Preferences diretamente na pasta "Startup" do computador) que deve fazer o que você está procurando, supondo que o seu O nome DNS do domínio não pode ser resolvido externamente para a sua rede. (Se ele puder ser resolvido externamente, então, francamente, você recebe o que merece.)

Este script fica em um loop de pesquisa, usando nslookup para resolver o domínio nomeado na variável de ambiente USERDNSDOMAIN . Ele pesquisa a cada 10 segundos, mas você pode modificar isso alterando a linha Const POLL_DELAY . (O giro estranho de se executar novamente é necessário porque, se executado apenas por wscript.exe , uma janela aparecerá brevemente em cada intervalo de sondagem - nada de bom.)

Quando o nome de domínio não resolve a tecla "F15" é "pressionado", causando atividade suficiente para o Windows não ativar o protetor de tela.

Este script foi testado no Windows 8.1 x64 com um usuário de domínio que tinha um objeto de diretiva de grupo aplicando a eles que incluía as configurações de modelo administrativo:

  • Ativar proteção de tela - Ativada
  • Evitar a alteração do plano de fundo da área de trabalho - Ativado
  • Evitar a alteração da proteção de tela - Ativada
  • Proteger com senha o protetor de tela - Ativado
  • Tempo limite do protetor de tela - Ativado - 30 segundos
  • Forçar proteção de tela específica - Ativado - scrnsave.scr

Minha metodologia de teste foi a seguinte:

  • Coloque o programa chamado ss.vbs na pasta "Inicialização" do computador
  • Efetue logon no computador como um usuário com as configurações de Política de Grupo aplicadas acima
  • Verifique se a proteção de tela inicia após 30 segundos de inatividade
  • Desbloqueie a máquina
  • Desconecte a placa de interface de rede do computador
  • Verifique se a proteção de tela não inicia após vários minutos de inatividade
  • Reconecte a placa de interface de rede do computador
  • Verifique se a proteção de tela inicia após 30 segundos de inatividade
  • Faça logoff para verificar se o script não "trava" ou perturba o processo de logoff

Em uma máquina com Windows 8.1 x64, o script está fazendo exatamente o que eu quero.

Option Explicit

' Delay, in seconds, between attempts to resolve the domain name 
' and pressing the "F15" key.
Const POLL_DELAY = 10

Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")

Dim objExec
Dim intFound

If UCase(Right(WScript.Fullname, 11)) = "WSCRIPT.EXE" Then
    While 1
        intFound = objShell.Run("cscript.exe """ & WScript.ScriptFullName & """", 0, True)

        If intFound = 255 Then objShell.SendKeys("{F15}")

        WScript.Sleep(POLL_DELAY * 1000)
    Wend
Else
    Set objExec = objShell.Exec("nslookup " & objShell.ExpandEnvironmentStrings("%USERDNSDOMAIN%"))

    While Not objExec.StdOut.AtEndOfStream
        If Left(objExec.StdOut.ReadLine, 5) = "Name:" Then WScript.Quit(0)
    Wend

    WScript.Quit(255)
End If
    
por 19.02.2014 / 16:14
2

A maneira típica de lidar com isso é um conjunto separado de diretivas para usuários ou máquinas definidas como trabalhadores "remotos". Nós, por exemplo, temos uma OU chamada Remote Laptop Users , que permite a esses usuários mais controle sobre as configurações de exibição e energia, exatamente por esse motivo. (Você também pode usar o filtro WMI ou a filtragem de segurança para obter os mesmos resultados, se não quiser ou não puder alterar as UOs em que esses objetos estão).

Se você conseguir que seus usuários usem as configurações de apresentação

    
por 19.02.2014 / 16:24