Thanks for the input!. However, I have a simpler script that I use to change
the registry settings.  Granted that it does not have all the checks, etc.
My script does the same thing (modifies the particular registry key).

I was concerned that the GUI  does not show a change in time zone and the
clock must be manually reset.  I was really looking for something that would
cause the time on the local system to change as well, as what happens when
the zone info is changed via the GUI.  I guess that I will just have to
settle changing the  registry and then syncing up the times on the PCs.

Thanks for the help.


>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED]]On Behalf Of
>Mcguire, Timothy, L (Tim)
>Sent: Thursday, November 02, 2000 9:53 AM
>To: '[EMAIL PROTECTED]'
>Cc: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
>Subject: RE: changing time zones
>
>
>There are 2 things you can do.
>
>1.  Edit "CurrentControlSet001" this is your "working copy" if you will and
>will automatically update "CurrentControlSet".
>
>2. Have the user run a "net time \\\someserver /set /y".  This
>seems to sync
>everything up after I run a script and ensures that a. the script
>ran and b.
>it worked and c. the user has the correct time.  This puts into effect the
>changes you just made without a reboot In order to run this the user must
>have the right to change the time.  You could however experiment with
>running a generic net time.  This may work.
>
>See my scripts below. Use freely----->at your own risk.
>
>---CHANGES ZONE TO GMT (NO DAYLIGHT) AFTER A SERIES OF CHECKS
>
>#################Time Zone Set##################
>################################################
>use Win32::TieRegistry;
>open (timelog, ">timelog.txt");
>printf timelog ("%-20s %-25s %-25s\n\n\n","Computer Name","Time Zone
>Before","Timezone After");
>close timelog;
>#####################OPENS LIST OF MACHINES TO OPERATE ON
>open (FILE, "$ARGV[0]");
>
>while (<FILE>)
>
>       {
>####CHECKS TO MAKE SURE MACHINE IS PINGABLE AND QUITS IF IT IS NOT (see sub
>at bottom)
>       print "\n";
>       chomp;
>       print "Trying $_\n";
>       if (pingable($_))
>               {
>               print "$_ is pingable!!!\n";
>
>###CONNECTS TO REMOTE MACHINE'S REGISTRY and sets working key
>               $rmtreg =
>$Registry->Connect($_,"LMachine",{Delimiter=>"#"});
>               $rmtkey =
>$rmtreg->{"System#CurrentControlSet001#Control#TimeZoneInformation"};
>
>####LETS YOU KNOW OF SUCCESS AND LOGS MACHINES THAT SCRIPT COULDN'T CONNECT
>WITH
>                               if (not $rmtreg)
>                                       {
>                                       open (NOREG, ">>cantgetreg.txt");
>                                       print NOREG "$_\T$!\n";
>                                       close (NOREG);
>                                       die "Failure of remote registry
>fetch on $_!!!\t$!\n";
>                                       }
>               print "Succesful remote registry fetch on $_!!!\n";
>
>
>####Checks if change is required, makes chage if need be, logs actions to
>testlog.txt
>                       open (timelog, ">>timelog.txt");
>                       printf timelog ("%-20s %-25s
>",$_,$rmtkey->{DaylightName});
>                       #print $rmtkey->{StandardName};
>                       $keytest = $rmtkey->{StandardName};
>                       if ($keytest eq "GMT Standard Time")
>                               {
>                               $rmtkey->{ActiveTimeBias} =
>[pack("L",0),REG_DWORD] or die ("Couldn't do ActiveTimeBias");
>                               $rmtkey->{DaylightBias} =
>[pack("L",0),REG_DWORD] or die ("Couldn't do DaylightTimeBias");
>                               $rmtkey->{DisableAutoDaylightTimeSet} =
>[pack("L",1),REG_DWORD] or die ("Couldn't do DisableAutoDaylightTimeSet");
>                               $rmtkey->{DaylightStart} =
>[$rmtkey->{StandardStart},REG_BINARY] or die ("Couldn't do DaylightStart");
>                               $rmtkey->{DaylightName} = "GMT Standard
>Time" or die ("Couldn't do DaylightName");
>                               }
>                       printf timelog ("%-25s\n",$rmtkey->{DaylightName});
>
>}
>if (not pingable($_))
>               {
>               print "$_ is not pingable!!!\t$!\n";
>               open (NOPING, ">>notpingable.txt");
>               print NOPING "$_\t\t$!\n";
>               close (NOPING);
>}
>}
>
>
>
>               ####    pingable returns 0 if host doesn't ping, 1 if it
>does.
>
>               sub pingable
>                       {
>                       use Net::Ping;
>                       my $node = $_[0];
>                       my $p = Net::Ping->new("icmp");
>                       if ($p->ping($node))
>                               {
>                               $p->close();
>                               return 1;
>                               }
>                       else
>                               {
>                               $p->close();
>                               return 0;
>                               }
>                       }
>
>
>ADDS CHANGE TIME RIGHTS FOR EVERYONE----
>
>###################GRANTS CHANGE SYSTEM TIME TO THE EVERYONE GROUP ON
>machines in TEXT FILE
>use Win32::Lanman;
>open (FILE, "$ARGV[0]");
>open (ERRORLOG, ">>ERRORLOG.txt");
>while (<FILE>) {
>
> chomp;
> if(!Win32::Lanman::GrantPrivilegeToAccount("\\\\$_",
>"SeSystemtimePrivilege",["everyone"]))
>               {
>                    print "Sorry, something went wrong on $_, logging
>error: ";
>                    # get the error code
>                    print Win32::Lanman::GetLastError(), " to
>ERRORLOG.TXT\n";
>                    print ERRORLOG "$_\n";
>                                next;
>               }
>
>         print "Group:  \"Everyone\" given \"Set System Time\" right on
>$_\n";
>
>        }
>        close ERRORLOG;
>
>Hope this helps,
>
>Tim McGuire
>AT&T Solutions
>Durham, NC
>[EMAIL PROTECTED]
>
>
>----original message------
>
>
>Reply-To: <[EMAIL PROTECTED]>
>From: "navilliat" <[EMAIL PROTECTED]>
>To: "EDWARDS, John" <[EMAIL PROTECTED]>,
><[EMAIL PROTECTED]>
>Subject: RE: changing time zones
>Date: Tue, 31 Oct 2000 11:50:28 -0500
>charset="iso-8859-1"
>
>I have been doing this.  The problem seems to be that the PC does not
>realize the change until it reboots, which is a drag.  I need to be able to
>w/o rebooting the PCs, if at all possible.
>
>Dan
>_______________________________________________
>Perl-Win32-Admin mailing list
>[EMAIL PROTECTED]
>http://listserv.ActiveState.com/mailman/listinfo/perl-win32-admin

_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-admin

Reply via email to