Link to home
Create AccountLog in
Avatar of tetran_au
tetran_auFlag for Australia

asked on

Tzutil in vbscript help

Hi guys i need a bit of help.

I am creating a SOE image for a rollout of about 500 pc's.  These pc's will be all over australia so i am in the process of creating a vb script that will allow the users to select the state they are in and it will change the timezone on the machine accordingly.

I am using vbscript to call on the command line tool TZutil.exe. This is a summary of the code i am trying to get working

ChangeTimeZone("Aus Eastern Standard Time")

Sub ChangeTimeZone(strTimeZone)
   Set objShell = CreateObject("WScript.shell")  
   objShell.Run "tzutil.exe /s" & strTimeZone
   wscript.echo ("Timezone changed to " & strTimeZone)
End Sub


However i think the above code is presenting TZutil.exe /s Aus Eastern Standard Time instead of what i need in TZUTIL /s "Aus Eastern Standard Time"

The missing " " around the timezone name is what seems to be breaking this for me.  I need to find some what to ensure that the time zone is passed through to the command line with the " " around it

The question is how do i get this to work.  I have only started learning VB so this is a new thing for me.  Any assistace will be greatly appreciated. As this is the last thing of a long complicated process.

Is it simple process to get the command parsed through including the " " around the timezoneID or is there a major complicated re-write of code  I need to do.
ASKER CERTIFIED SOLUTION
Avatar of Tompa99
Tompa99
Flag of Sweden image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of tetran_au

ASKER

Hi Tompa

Thanks for the quick response

I have modified the script to now be



ChangeTimeZone("Fiji Standard Time")

Sub ChangeTimeZone(strTimeZone)
   Set objShell = CreateObject("WScript.shell")  
   objShell.Run "c:\windows\system32\tzutil.exe /s" & chr(34) & strTimeZone & chr(34)
   wscript.echo ("Timezone changed to " & chr(34) & strTimeZone & chr(34))
End Sub

The good point is while it is showing the " " in the wscript.echo it is still not running the command correctly. ;(

Hi Tompa,

Ignore my last post, You are truely a god

I modified the script to try and see what was going wrong

ChangeTimeZone("Aus Eastern Standard Time")

Sub ChangeTimeZone(strTimeZone)
   Set objShell = CreateObject("WScript.shell")  
   objShell.Run "c:\windows\system32\tzutil.exe /s" & chr(34) & strTimeZone & chr(34)
   wscript.echo ("c:\windows\system32\tzutil.exe /s " & chr(34) & strTimeZone & chr(34))
   wscript.echo ("Timezone changed to " & chr(34) & strTimeZone & chr(34))
End Sub

With the line you provided it was parsing thru the following

c:\windows\system32\tzutil.exe /s"TimeZoneID"

I tried this command from the cmd.exe and it bombed out.

i have since identified that it needed space between the /s and the "timezoneID"

So i changed
objShell.Run "c:\windows\system32\tzutil.exe /s" & chr(34) & strTimeZone & chr(34)
to
objShell.Run "c:\windows\system32\tzutil.exe /s " & chr(34) & strTimeZone & chr(34)

and it worked perfectly...

cant thank you enough for your help.

THANK YOUUUUUUUU

Truely helpful expert.

eternally grateful
Good good always happy to help.

Regards Tompa