четверг, 26 июля 2012 г.

Меняем часовой пояс через CMD скрипт

Меняем часовой пояс через 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

Для того, чтобы по время выполнения скрипта не появлялось окно 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
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 

Комментариев нет:

Отправить комментарий