Меняем часовой пояс через CMD скрипт
Как известно, корпорация Microsoft в августе 2011 года выпустила накопительный пакет обновления часовых поясов для операционных систем Windows - KB2570791.
Для облегчения настройки рабочих станций на необходимый часовой пояс (в моем случае - это часовой пояс (UTC+12) Magadan ) было выбрано следующее решение:
1. собирается sfx архив, в который входит: скрипт tz.bat , утилита nircmd.exe и необходимые накопительные пакеты KB2570791 под разные версии ОС
2. далее sfx архив запускается на каждой машине и настройка часового пояса происходит в автоматическом режиме.
в случае использования WinRAR параметры sfx архива:
Path=.\%temp%
Setup=nircmd.exe execmd ntp.bat
Silent=1
Overwrite=1
Setup=nircmd.exe execmd ntp.bat
Silent=1
Overwrite=1
Для того, чтобы по время выполнения скрипта не появлялось окно CMD и потребовалась утилита nircmd.exe
скрипт tz.bat
Rem Проверка установки патча
Reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\" | find "KB2570791"
if %ERRORLEVEL%==0 (
goto end
)
systeminfo | find "KB2570791" > null
if %ERRORLEVEL% == 0 (
goto end
)
Rem Определяем версию ОС и разрядность
IF EXIST "%ProgramFiles(x86)%" (
ver|find "6.1" && goto Win7_x64
goto end
)
ver|find "5.1" && goto WinXP_x32_SPx
ver|find "6.1" && goto Win7_x32
Reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\" | find "KB2570791"
if %ERRORLEVEL%==0 (
goto end
)
systeminfo | find "KB2570791" > null
if %ERRORLEVEL% == 0 (
goto end
)
Rem Определяем версию ОС и разрядность
IF EXIST "%ProgramFiles(x86)%" (
ver|find "6.1" && goto Win7_x64
goto end
)
ver|find "5.1" && goto WinXP_x32_SPx
ver|find "6.1" && goto Win7_x32
goto end
Rem Определение сервис пака WindowsXP
:WinXP_x32_SPx
For /F "Skip=4 Tokens=5" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion') Do (
If %%A==2 goto WinXP_x32_sp2
If %%A==3 goto WinXP_x32_sp3
)
goto end
:winXP_x32_sp2
Rem Выставить режим авто и запустить службу
sc config w32time start= auto
net start w32time
Rem Меняем в реестре значение сервис пака - SP3, иначе патч не установится
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v CSDVersion /t REG_DWORD /d 768 /f
Rem Уставнока патча
start /wait %temp%\WindowsXP-KB2570791-x86-RUS.exe /quiet /passive /norestart
Rem Восстанавливаем в реестре первоначальное значение сервис пака - SP2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v CSDVersion /t REG_DWORD /d 512 /f
Rem Установка часового пояса
control.exe timedate.cpl,,/z Magadan Standard Time
Rem установка по умолчанию сервера NTP и синхронизация
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
Rem перезагрузка службы времени
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
Rem завершение работы скрипта
goto end
:winXP_x32_sp3
sc config w32time start= auto
net start w32time
start /wait %temp%\WindowsXP-KB2570791-x86-RUS.exe /quiet /passive /norestart
control.exe timedate.cpl,,/z Magadan Standard Time
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
:Win7_x32
sc config w32time start= auto
net start w32time
start /wait %temp%\Windows6.1-KB2570791-x86.msu /quiet /norestart
tzutil /s "Magadan Standard Time"
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
:Win7_x64
sc config w32time start= auto
net start w32time
start /wait %temp%\Windows6.1-KB2570791-x64.msu /quiet /norestart
tzutil /s "Magadan Standard Time"
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
Rem Определение сервис пака WindowsXP
:WinXP_x32_SPx
For /F "Skip=4 Tokens=5" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V CSDVersion') Do (
If %%A==2 goto WinXP_x32_sp2
If %%A==3 goto WinXP_x32_sp3
)
goto end
:winXP_x32_sp2
Rem Выставить режим авто и запустить службу
sc config w32time start= auto
net start w32time
Rem Меняем в реестре значение сервис пака - SP3, иначе патч не установится
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v CSDVersion /t REG_DWORD /d 768 /f
Rem Уставнока патча
start /wait %temp%\WindowsXP-KB2570791-x86-RUS.exe /quiet /passive /norestart
Rem Восстанавливаем в реестре первоначальное значение сервис пака - SP2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Windows" /v CSDVersion /t REG_DWORD /d 512 /f
Rem Установка часового пояса
control.exe timedate.cpl,,/z Magadan Standard Time
Rem установка по умолчанию сервера NTP и синхронизация
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
Rem перезагрузка службы времени
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
Rem завершение работы скрипта
goto end
:winXP_x32_sp3
sc config w32time start= auto
net start w32time
start /wait %temp%\WindowsXP-KB2570791-x86-RUS.exe /quiet /passive /norestart
control.exe timedate.cpl,,/z Magadan Standard Time
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
:Win7_x32
sc config w32time start= auto
net start w32time
start /wait %temp%\Windows6.1-KB2570791-x86.msu /quiet /norestart
tzutil /s "Magadan Standard Time"
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
:Win7_x64
sc config w32time start= auto
net start w32time
start /wait %temp%\Windows6.1-KB2570791-x64.msu /quiet /norestart
tzutil /s "Magadan Standard Time"
net time \\ntp /set /yes
w32tm /stripchart /computer:ntp /samples:5 /dataonly
w32tm /config /manualpeerlist:ntp /syncfromflags:manual /update
net stop w32time & ping 127.0.0.1 -n 2 & net start w32time
goto end
:end
Комментариев нет:
Отправить комментарий