alexancioto
(usa Debian)
Enviado em 08/11/2012 - 15:02h
Boa tarde Pessoal
Estou precisando de um script que mude o horário e o fuso horário de máquinas windows xp e windows 7 quando o usuário loga no domínio, pesquisando na net consegui fazer funcionar no windows 7 porem no windows xp so funciona com usuário administrador, com usuário restrito não troca o fuso horário.
Obs.: Com o comando runas da certo, mas eu tenho que colocar a senha do administrador no script e isso é ruim.
Eu uso Samba com ldap.
E nas máquinas clientes todos os usuário tem permissão de alterar a data e hora já setadas nas políticas de grupo.
segue o script que eu consegui fazer:
Set objShell = wscript.CreateObject("WScript.shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
Dim valInt
Sub ChangeTimeZone(strTimeZone)
Set objShell = CreateObject("WScript.shell")
objShell.Run "tzutil.exe /s" & strTimeZone, vbhide
wscript.echo ("Timezone changed to" & strTimeZone )
End Sub
For Each objOperatingSystem in colOperatingSystems
valInt = clng(objOperatingSystem.version)
if valInt <= 600000 then
strNewTimeZone = "E. South America Standard Time"
Dim process, processid, result, strUpdateCommand
Set process = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2:Win32_process")
'Adiciona o privilégio de alteração de horário ao objeto do processo
process.Security_.Privileges.AddAsString "SeSystemTimePrivilege",True
strUpdateCommand = "control.exe timedate.cpl,,/Z" & strNewTimeZone
'Launch control.exe to change time zone using the TZ key name stored in strNewTimeZone
result = process.Create(strUpdateCommand, Null, Null, processid)
else
ChangeTimeZone(" ""e. south america standard time"" " )
end if
Next
objShell.Run "net time \\ifsproot /set /yes"
Não sou programador, trabalho na área de redes e estou aceitando sugestões.
Obrigado a todos