Dim strHostName, strSearchFoR
Set objComputer = CreateObject("Shell.LocalMachine")
Set objShell = CreateObject("WScript.Shell")
strHostName = UCase(objComputer.MachineName) strSearchFor = UCase("Term")
If InStr(1, strHostName, strSearchFor) > 0 then
wscript.echo "Changing Time Zone to Arizona"
objShell.Run "CONTROL.EXE TIMEDATE.CPL,,/Z Us Mountain Standard Time"
Unfortunately, I don't think you can do this the way you're doing it. The problem is, although there is a WMI object representing terminal server sessions, it does not include the time zone property. In short, we can't get to this information via VBScript and, as you saw, setting it on the terminal server changes it for everybody. You might try a product called Time Machine to see if this user-based time-setting tool can help you. I have not tried this tool, but it looks like it answers your question.
Dig Deeper on Windows client management
Managing Windows networks using scripts, Part 12: Windows Management Instrumentation
Properties of Windows Management Instrumentation: Managing Windows networks using scripts, Part 12
Windows scripting secrets for disk quota management
Managing Windows networks using scripts Part 7: Troubleshooting the mystery error
Related Q&A from Christa Anderson
Expert Christa Anderson offers advice for dealing with a crashing spooler service. Continue Reading
Expert Christa Anderson offers some ideas for monitoring who is connecting to a terminal server, and when they are connecting. Continue Reading
Expert Christa Anderson suggests why users in a network are being logged out and how to solve the problem with Windows 2003 Terminal Services. Continue Reading