OV-103 Skrevet 5. oktober 2008 Skrevet 5. oktober 2008 (endret) Jeg har et system der jeg vil ha synkronisert klokka mot en server. Systemet er ikke i et domene, serveren er ikke koblet mot internett og alle klientene kjører Windows XP Pro SP2. Nå har jeg klart å få synkronisert klokka, men om noen av klientene har en annen dato enn serveren så stopper det opp. Er det mulig å også få synkronisert dato og helst også tidssone uten ekstra programvare? Endret 7. oktober 2008 av OV-103
OV-103 Skrevet 5. oktober 2008 Forfatter Skrevet 5. oktober 2008 Fant ut at ved å endre DWORD "MaxPosPhaseCorrection" og "MaxNegPhaseCorrection" i "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config" til "ffffffff" i registeret på klienten så synkroniserer den uansett hva datoen er. Da var det bare igjen å finne ut om windows kan synkronisere tidssone uten å legge inn andre programmer. Jeg har mine tvil om at det går, men det er jo lov å håpe.
OV-103 Skrevet 7. oktober 2008 Forfatter Skrevet 7. oktober 2008 Fikk det til ved å lage et script som automatisk henter ut tidssone informasjon fra registeret på serveren og legger det inn via en .reg fil på alle maskinene i nettverket.
obergeru Skrevet 7. oktober 2008 Skrevet 7. oktober 2008 Hadde vært fint hvis du kunne delt dette scriptet, kanskje andre har samme problem
OV-103 Skrevet 7. oktober 2008 Forfatter Skrevet 7. oktober 2008 Da legger jeg det ved her, men siden det er laget for systemet vi bruker på jobben så er det noen småting som kanskje må tilpasses. Variabler for admin bruker og navn står øverst. Merk at det sikkert kunne blitt gjort mye mer elegant, men jeg hadde ikke så mye tid til å gjøre det. I tillegg til scriptet trengs et program som heter psexec.exe. Det kan hentes hos Microsoft. Psexec trenger ikke å installeres, bare legges i samme mappe som scriptet. @echo off title Time, date and time zone sync color 17 cls rem --Set variables rem ==================================================================================== Set variables START set EXECLOC=%~dp0 set DRV=%EXECLOC:~0,1% set PTH=%EXECLOC:~3% set USER=KNC_Service set PASS=LUN6a6 set TSRV=0 rem ==================================================================================== Set variables END rem --Check for psexec.exe rem ==================================================================================== Check for psexec.exe START psexec >nul 2>nul if %errorlevel% == 9009 ( echo. echo Error: Cannot find psexec.exe in current folder or in PATH. Exiting... echo. pause exit 1 ) rem ==================================================================================== Check for psexec.exe END rem --Generate stations.cfg rem ==================================================================================== Generate stations.cfg START if not exist "stations.cfg" ( SETLOCAL ENABLEDELAYEDEXPANSION cls echo No Stations.cfg found, generating new file... net view | findstr /i \\. > stations.tmp findstr /i /v !COMPUTERNAME! stations.tmp > stations.tmp2 for /F %%a in (stations.tmp2) do ( set tmp= %%a set tmp=!tmp:~3,15! echo !tmp! >> stations.cfg ) del /F /Q stations.tmp del /F /Q stations.tmp2 echo. echo stations.cfg created. echo Please review the file with Notepad/Wordpad and then press enter to continue. echo. pause ) rem ==================================================================================== Generate stations.cfg END rem ==================================================================================== Time sync START echo Do you want to enable time synchronization on all clients in stations.cfg? echo. echo. set /p SYNC="yes/no: " cls echo. if /i "%SYNC%" == "" set SYNC=no if /i "%SYNC%" == "no" GOTO NOSYNC echo Collecting systeminfo... systeminfo | find "5.2.3790" >nul 2>nul if %errorlevel% == 0 ( SETLOCAL ENABLEDELAYEDEXPANSION ipconfig > ip.tmp for /F "tokens=2 delims=:" %%a in ('find "IP Address" ^<ip.tmp') do set IP=%%a set TSRV=!IP:~1,15! del /Q ip.tmp regedit /e tserver.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer find "Enabled" tserver.reg | find "=dword:00000001" >nul 2>nul if !errorlevel! == 1 ( cls echo. echo You are running Windows Server 2003 with Time Server disabled. echo Enable the this Time Server for all clients? echo. echo. set /p TS="yes/no: " cls echo. rem If Yes, activate Time Server in registry and restart service. if /i "!TS!" == "yes" ( echo Windows Registry Editor Version 5.00 > tsrv.reg echo.>> tsrv.reg echo.>> tsrv.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] >> tsrv.reg echo "AnnounceFlags"=dword:00000005 >> tsrv.reg echo.>> tsrv.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] >> tsrv.reg echo "Type"="NoSync" >> tsrv.reg echo.>> tsrv.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer] >> tsrv.reg echo "Enabled"=dword:00000001 >> tsrv.reg regedit /s tsrv.reg del /Q tsrv.reg echo Restarting service to activate changes... net stop w32time net start w32time cls GOTO AUTOIP ) ) GOTO AUTOIP ) cls echo. set /p TSRV="Enter Time server IP: " :AUTOIP echo Windows Registry Editor Version 5.00 > time.reg echo.>> time.reg echo.>> time.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] >> time.reg echo "MaxNegPhaseCorrection"=dword:ffffffff >> time.reg echo "MaxPosPhaseCorrection"=dword:ffffffff >> time.reg echo.>> time.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] >> time.reg echo "NtpServer"="%TSRV%,0x1" >> time.reg echo "Type"="NTP" >> time.reg echo.>> time.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\Parameters] >> time.reg echo "NtpServer"="%TSRV%,0x1" >> time.reg echo "Type"="NTP" >> time.reg echo.>> time.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient] >> time.reg echo "Enabled"=dword:00000001 >> time.reg echo "InputProvider"=dword:00000001 >> time.reg echo.>> time.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers] >> time.reg echo @="0" >> time.reg echo "0"="%TSRV%" >> time.reg echo "1"=- >> time.reg echo "2"=- >> time.reg :NOSYNC rem ==================================================================================== Time sync END rem ==================================================================================== Extract TZ information START echo Collecting source Time Zone information... echo. regedit /e ccs.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation regedit /e cs1.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\TimeZoneInformation cls rem ==================================================================================== Extract TZ information END rem ==================================================================================== Import reg file START echo Exporting registry settings to clients... cls for /F %%b in (stations.cfg) do ( echo Copying and importing reg files to station %%b xcopy /E /Y ccs.reg \\%%b\C$\ >nul 2>nul xcopy /E /Y cs1.reg \\%%b\C$\ >nul 2>nul if exist time.reg xcopy /E /Y time.reg \\%%b\C$\ >nul 2>nul psexec.exe -i \\%%b -u %USER% -p %PASS% regedit /s C:\ccs.reg >nul 2>nul psexec.exe -i \\%%b -u %USER% -p %PASS% regedit /s C:\cs1.reg >nul 2>nul if exist time.reg psexec.exe -i \\%%b -u %USER% -p %PASS% regedit /s C:\time.reg >nul 2>nul del /Q \\%%b\C$\ccs.reg \\%%b\C$\cs1.reg if exist time.reg del /Q \\%%b\C$\time.reg psexec.exe -i \\%%b -u %USER% -p %PASS% -d shutdown /r /t 5 /c "Shutting down to set Time Zone" >nul 2>nul ) rem ==================================================================================== Import reg file END del /Q ccs.reg cs1.reg if exist time.reg del /Q time.reg if exist tserver.reg del /Q tserver.reg exit 0 rem --Written by Espen Urkedal rem ============= rem = v.1.0 RC1 = rem =============
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå