quarta-feira, 15 de setembro de 2010

Utilizando Gpupdate SEM a intervenção do Usuário

As vezes você se depara com algumas situações onde você precisa atualizar as policies de suas estações, mas não quer intervenção do usuário.

Por exemplo, você quer colocar como script de logoff, ou atualizar uma política que pode esperar a próxima vez que o usuário reinicie seu computador.

Existem duas formas, uma super simples e a outra mais complexa.

Primeiro a simples:

gpupdate /force /wait:0

Este comando vai forçar a aplicação da política e irá aguardar indefinidamente sua aplicação, ou seja, somente da próxima vez que o usuário reiniciar a máquina.

Só que as vezes pode não funcionar, no caso de voce precisar adicionar a condição /sync, a opção /wait é suprimida.

Nestes casos, você deverá utilizar a solução mais complexa, que é editando um script .VBS:

'====================
'Script para aplicar GPUPDATE /sync /force sem a intervenção do usuário
'Desenvolvido por Felipe Gustavo Fiad
'====================

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
strInputFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "input.txt"

Set objInputFile = objFSO.CreateTextFile(strInputFile, True)
objInputFile.WriteLine "n"
objInputFile.WriteLine "n"
objInputFile.Close
Set objInputFile = Nothing

strInputFile = objFSO.GetFile(strInputFile).ShortPath

' PARA TESTAR, USE /k and 1, APOS REALIZAR OS TESTES, USE /c e 0
strCommand = "cmd /k gpupdate /sync /force < " & strInputFile objShell.Run strCommand, 1, True objFSO.DeleteFile strInputFile, True Set objFSO = Nothing Set objShell = Nothing

' A linha abaixo pode ser suprimida após os testes para manter o script totalmente em silêncio.

MsgBox "Script finished."

'====================

Espero ter ajudado! Se gostou, comente!

Nenhum comentário:

Postar um comentário