Tzutil s что это
Как поменять время через командную строку
Операционная система MS-DOS несколько лет назад была заменена операционной системой Microsoft Windows, поэтому многие пользователи не знакомы с командами операционной системы MS-DOS. Однако, для установки времени и даты вы можете использовать командную строку.
DATE и TIME имеют сходный формат командной строки и используются для отображения или изменения текущей даты или времени.
Формат командной строки DATE:
Команда DATE без параметров отображает текущую дату и запрашивает ввод новой даты. Для сохранения текущей даты нажмите клавишу ENTER.
Формат командной строки TIME:
Введите TIME без параметров для вывода текущего времени и запроса на ввод нового времени. Нажмите клавишу ENTER для сохранения текущего времени.
date – отобразить текущую дату. Результат:
Текущая дата: 28.09.2012
Введите новую дату (дд-мм-гг):
Установить новое значение даты:
Отобразить текущее время:
Или то же, но с интерактивным запросом:
Текущее время: 8:20:04,96
Введите новое время: 8:30
Установить новое значение времени через параметр командной строки ( без запроса ):
В качестве одного из базовых параметров времени, помимо собственно, времени и даты, во всех компьютерных системах является понятие часового пояса (Time zone). Для корректного отображения времени в системе, часовой пояс должен быть установлен в соответствии с географическим расположением компьютера.
В ОС семейства Windows проще всего изменить часовой пояс непосредственно из графического интерфейса, щелкнув по значку часов в системном трее и выбрав пункт Change date and time settings (Настройка даты и времени). Далее нужно нажать на кнопку Change Time Zone (Изменить часовой пояс), выбрать из списка доступных часовых поясов подходящий и сохранить изменения.
В Windows изменить часовой пояс можно также и из командой строки или консоли PowerShell. Конкретный способ зависит от используемой версии Windows. Рассмотрим возможные варианты.
Право на изменение часового пояса
Смена часового пояса в Windows 10, 8.1 и 7– утилита TZUtil
Для смены часового пояса в ОС Windows 10 / 8.1 / 7, Windows Server 2016/ 2012 R2/ 2008 R2 используется специальная утилита командной строки tzutil.exe (Windows Time Zone Utility), впервые появившаяся в Windows 7 (на Vista/ Server 2008 устанавливается в виде отдельного обновления KB 2556308). Исполняемый файл утилиты хранится в каталоге %WINDIR%System32.
Разберемся с возможностями и особенностями использования утилиты TZUtil.
Итак, запустите командную строку (cmd.exe). Чтобы узнать текущий часовой пояс и его идентификатор (TimeZoneID), выполните команду:
В данном примере Russian Standard Time это идентификатор текущего часового пояса:
Выведем список всех часовых поясов с их названием и идентификаторами так:
Если вы хотите быстро найти вывести все доступные часовые пояса, например, со сдвигом UTC +2, выполните команду:
tzutil /l | find /I «utc+02»
Изменим текущий часовой пояс (UTC+03:00) Москва, Санкт-Петербург, Волгоград – (Russian Standard Time) на (UTC+04:00) Ижевск, Самара (Russia Time Zone 3). Для этого нужно указать идентификатор часового пояса.
tzutil /s «Russia Time Zone 3»
Проверим, что пояс сменился другим способом:
reg query HKLMSYSTEMCurrentControlSetControlTimeZoneInformation
Чтобы отключить переход на летнее время для конкретного пояса, нужно указать идентификатор часового пояса с суффиксом _dstoff, например
tzutil /s “Pacific Standard Time_dstoff”
После выполнения данной команды вы измените часовой пояс компьютер и отключите сезонный перевод часов.
Также вы можете вывести информацию о часовом поясе и настройках сезонного перевод часов так:
Часовой пояс: Текущий:TIME_ZONE_ >[Зимнее время:»RTZ 2 (зима)» Сдвиг:0мин Дата:(не указано)]
[Летнее время:»RTZ 2 (лето)» Сдвиг:-60мин Дата:(не указано)]
Управление часовым поясом из консоли PowerShell
Получить настройки текущего часового пояса можно и из консоли PowerShell, выполните команду
Id : Ekaterinburg Standard Time
DisplayName : (UTC+05:00) Екатеринбург
StandardName : RTZ 4 (зима)
DaylightName : RTZ 4 (лето)
BaseUtcOffset : 05:00:00
SupportsDaylightSavingTime : True
Чтобы посмотреть все возможные часовые пояса, доступные в Windows можно использовать команду Powershell:
Для смены часового пояса из PowerShell, выполните команду:
Автоматизация смены часового пояса с помощью Powershell
Рассмотрим универсальный Powershell скрипт, который позволяет изменить часовой пояс на любом компьютере (скрипт предполагает, что в вашей сети до сих пор присутствуют компьютеры с Windows XP / Windows Server 2003). Этот скрипт можно назначить через групповые политики на все компьютеры домена / определенные организационные контейнеры (OU). Скрипт определяет версию ОС и, если это Windows Vista или выше, для смены часового пояса используется команда tzutil.exe, в противном случае – используется вариант смены пояса через RunDLL32.exe для Windows XP.
Смена часового пояса в Windows XP из командной строки
В Windows информация о значении текущей часовой зоны хранится в ветке реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation.
В нашем случае, например, видно, что в данный момент используется часовая зона — Ekaterinburg Standard Time.
Эту же информацию можно получить таким запросом:
reg query HKLMSYSTEMCurrentControlSetControlTimeZoneInformation
Список доступных часовых поясов в Windows XP / Windows Server 2003 хранится в ветке реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTime Zones.
RunDLL32.exe shell32.dll,Control_RunDLL timedate.cpl,,/Z Russian Standard Time
Control.exe TIMEDATE.CPL,,/Z Russian Standard Time
Проверим, что часовой пояс сменился:
reg query HKLMSYSTEMCurrentControlSetControlTimeZoneInformation
Windows Server 2012 — жизнь без GUI
Windows Server 2012 позиционируется как система, которой GUI для полноценной работы не нужен. При установке по умолчанию выбран пункт Server Core, добавлена возможность удаления графического интерфейса без переустановки сервера, список ролей, не нуждающихся в GUI в сравнении с 2008 R2 расширен. В своих книгах Microsoft утверждает, что работа с командной строкой естественна и вспоминает начало 90-х годов прошлого века, когда системные администраторы жаловались на бесполезную трату ресурсов графической оболочкой. В дополнение к этому Microsoft предлагает «новый» путь администрирования своих серверных операционных систем, в котором предполагается, что серверную консоль вы будете видеть только один раз – при установке операционной системы, а вся работа и настройка системы будет осуществляться удаленно: через «Диспетчер серверов», MMC-оснастки и PowerShell, который в 2012 сервере уже версии 3.0
Допустим, что первоначальная настройка сервера после установки включает в себя:
В исходных данных письмо от местного умельца:
Привет, поставил венду на сервер. IP – 169.254.23.43. Логин – Администратор. Пароль – qwe123!@#. Пока.
Готовимся
Для управления удаленным сервером в рабочей группе с помощью WinRM, мы должны доверять удаленному серверу. Тут мне логика немного непонятна. По идее, удаленный сервер должен доверять нам, мы же им управляем, а не он нами. Возможно, это от неполного понимания принципов работы WS-MAN. Но в любом случае, сказать WinRM, что мы доверяем удаленному серверу нужно. Это реализовано занесением имени или IP-адреса удаленного сервера в список «доверенных хостов» (TrustedHosts)
Теперь как-то нужно выполнить первоначальную настройку удаленного сервера. Я знаю 2 командлета, которые могут помочь с этой задачей: Enter-Pssession и Invoke-Command. Оба используют WinRM. Enter-Pssession дает нам консоль удаленного сервера, Invoke-Command отправляет блок команд на удаленный сервер и возвращает результат их выполнения. Ниже используется Invoke-Command (мы же собрались вообще не видеть удаленную консоль).
Действия будем выполнять по следующему принципу:
Настройка сетевых интерфейсов
Делать нечего, меняем свой адрес на что-нибудь из APIPA-диапазона, ну например 169.254.0.1 и садимся думать, как удаленно изменить IP-адрес у таёжного сервера. Думать тут нечего:
В PowerShell 3.0 появилась целая группа Network Adapter Cmdlets, которая позволяет нам делать с сетевыми адаптерами все что угодно.
Меняем IP-адрес на нормальный с необходимой маской и шлюзом. Для этого существует другая группа Net TCP/IP Cmdlets
Добавляем DNS-серверы. Третья группа DNS Client Cmdlets
Как все это выполнить на удаленном сервере? Сделать скрипт и с помощью Invoke-Command запустить его на выполнение.
Сохраним этот набор команд где-нибудь с именем скрипта, например, remotechangeip.
По умолчанию в PowerShell разрешается работа только в интерактивном режиме, выполнение любых скриптов запрещено (restricted). Для выполнения скриптов нам нужно либо remotesigned (цифровая подпись требуется для скриптов, загруженных из интернета), либо unrestricted (при выполнении неподписанного скрипта, загруженного из интернета будет выдаваться предупреждение о ненадежности источника). Если на безопасность совсем положить, можно поставить bypass (будет выполняться все без лишних вопросов). Eсли у вас есть собственный сертификат, выданный доверенным издателем, и вы не ленитесь подписывать с его помощью свои скрипты – вам нужен allsigned (в таком случае, вы наверное и сами это знаете). У меня сертификата нет, поэтому политику я устанавливаю remotesigned.
Отправляем наш скрипт на удаленный сервер.
Пароль от учетной записи Администратор у нас есть в письме. После выполнения получаем сервер со статическим адресом 192.168.0.5 с маской подсети /24, шлюзом по умолчанию 192.168.0.1 и DNS-серверами 192.168.0.2 и 192.168.0.3
Еще нужно не забыть изменить IP в TrustedHosts, иначе на этом наше удаленное администрирование закончится.
Изменение часового пояса
Я очень долго пытался решить эту задачу с помощью PowerShell. Я нашел функцию, меняющую часовой пояс локально. Но если мы попытаемся выполнить эту функцию через Invoke-Command, получим граблями по лбу в виде «Имя Set-Timezone не распознано как имя командлета, функции, файла сценария или выполняемой программы».
Invoke-Command при выполнении естественно не копирует с локальной машины, а выполняет имеющиеся на удаленном сервере командлеты. Это понятно и логично. Задача была ясна — перед выполнением Invoke-Command нужно сбросить функцию на удаленный сервер. Но… тут мне стало лень.
Если заглянуть в код функции, то становится понятно, что она всего лишь проверяет версию ОС и в зависимости от нее выполняет либо timedate.cpl (XP и ниже), либо tzutil (Vista и выше). Проверять версию ОС незачем, мы ее знаем. Поэтому просто изменим часовой пояс с помощью tzutil
Можно попробовать установить часовой пояс, используя WMI. Выглядеть это будет так:
Что здесь происходит? Точка (.) говорит, что мы работаем с локальным компьютером. Обращаемся на локальном компьютере к классу win32_computersystem. Присваиваем свойству CurrentTimeZone значение 207, соответствующее “North Asia Standard Time”. И методом Put сохраняем изменение часового пояса.
Также сохранить и передать скрипт на удаленный компьютер с помощью Invoke-Command. По-моему, использовать tzutil проще.
Значения часовых поясов можно взять отсюда или из вывода tzutil /l
Ну и без PowerShell все-таки не обошлось.
Включение удаленного рабочего стола
В PowerShell 3.0 появилось множество командлетов, для работы с RDS. Их группа так и называется Remote Desktop Cmdlets. Но, как я понял, они рассчитаны на работу с RDS-сервером, просто включить удаленный рабочий стол для администратора с их помощью нельзя.
Остается два способа включения рабочего стола. Через WMI-вызовы и неправильный через модификацию реестра. Модификация реестра мне никогда не нравилась. Одно неловкое движение пальца и никто не гарантирует, что сервер поднимется после перезагрузки.
Что касается включения удаленного рабочего стола, то модификация ключа HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections, которому нужно присвоить значение 0, чтобы разрешить удаленный рабочий стол: во-первых, требует перезагрузки, во-вторых, не добавляет исключение для удаленного рабочего стола в правила брандмауэра.
Поэтому я буду использовать WMI-класс win32_terminalservicesetting и его метод setallowtsconnections, что позволит обойтись без перезагрузки и добавить правила исключения в брандмауэре одной командой.
Теперь у нас есть доступ к таёжному серверу по RDP! Можно радоваться? Представим, что единственный канал связи с внешним миром у удаленного сервера через спутник с грабительскими тарифами, диалапной скоростью, зашкаливающим пингом и продолжим настраивать сервер удаленно через PowerShell.
Переименование сервера и присоединение его к домену
Тем более, что осталось совсем немного.
По идее, командлет Add-Computer позволяет переименовать компьютер при присоединении его к домену. Но на практике, я сталкивался с тем, что при присоединении к домену и одновременным переименованием с помощью этой команды, компьютер входит в домен под своим старым именем. И понеслась – вывести компьютер из домена, перезагрузиться, удалить учетку в AD, запустить репликацию если контроллеров несколько, подождать, переименовать компьютер, перезагрузиться, ввести в домен, перезагрузиться.
Поэтому я предпочитаю операции переименования компьютера и ввода в домен выполнять отдельно.
Как только нам вернули управление, значит удаленный сервер перезагружается. Проверить результат команды (и готовность сервера) можно так:
И наконец-то ввод в домен
Заканчиваем
Все поставленные в начале задачи выполнены. Теперь уже можно думать, как дальше жить и где искать этот чертов ключ от шкафа.
Изменить часовую зону с tzutil.exe в Windows 10/8/7 2021
Команды Windows
Изменить часовой пояс с помощью часового пояса Windows или утилиты tzutil.exe
Мы уже видели, как вы можете изменить интервал обновления интернет-времени Windows. Сегодня мы увидим, как изменить Часовой пояс с помощью tzutil.exe. Чтобы запустить утилиту tzutil.exe, откройте командную строку.
В командной строке введите любую из следующих команд для достижения следующие результаты:
— Чтобы узнать текущий часовой пояс: tzutil / g
— Чтобы получить список всех доступных часовых поясов: tzutil / l
— изменить часовой пояс: tzutil / s timezon e (где timezon e должно быть заменено на требуемый часовой пояс, например Универсальное стандартное время ).
Упование это поможет!
Хотите прочитать о летнем времени в Windows сейчас?
Google, Microsoft вторглись в зону врага: кто победил?
P1 в Малайзии расширяет зону покрытия WiMax, ожидая Intel
Увеличьте скорость и силу сигнала Wi-Fi и зону покрытия
Улучшите, увеличьте, увеличьте и увеличьте сигнал, диапазон, силу, скорость и скорость Wi-Fi маршрутизатора прием на дому с использованием этих практических советов.
Виртуализированный часовой пояс
Область применения: Windows Server 2022
Контейнеры Windows поддерживают возможность сохранять конфигурацию виртуализированного часового пояса отдельно от узла. Все конфигурации, которые традиционно использовались для часового пояса узла, были виртуализированы и теперь предоставляют экземпляр для каждого контейнера. С этой функцией контейнеры Windows имеют следующее поведение:
Все API режима ядра и режима пользователя, связанные с конфигурацией часового пояса системы, теперь поддерживают контейнеры. Когда поток, работающий в контексте контейнера, вызывает системный API для получения местного времени, он получит конфигурацию часового пояса контейнера, а не узла. Данные часового пояса, записанные из контейнера, теперь сохраняются в хранилище контейнера, а сам такой контейнер больше не наследует данные о текущем часовом поясе узла при запуске. Это означает, что после настройки часового пояса контейнер будет использовать настроенный часовой пояс и после перезагрузок. Все контейнеры, созданные на основе образа, наследуют конфигурацию часового пояса, если она явно задана в одном из слоев.
В таблице ниже приведены сведения о поддерживаемой сборке для каждого SKU:
номер SKU | Поддерживаемая сборка |
---|---|
Windows Server 2019 | 10.0.17763.1935 или более поздняя версия |
20H2 SAC | 10.0.19042.985 или более поздняя версия |
Windows Server 2022 | Все версии |
Как настроить часовой пояс контейнера?
Во-первых, вам нужны версии узла и гостевой системы с поддержкой такой функции, то есть с исправлением 2105B или более поздней версии. При использовании более ранних версий поведение контейнера будет просто меняться на зеркалирование часового пояса узла, а конфигурация не будет действовать для узла или гостевой системы.
Для настройки часового пояса требуются права администратора, а именно разрешение SeTimeZonePrivilege. Учетная запись ContainerAdministrator имеет такое разрешение. Поэтому мы рекомендуем использовать минимальные разрешения, необходимые для вашей рабочей нагрузки, и использовать учетную запись ContainerAdministrator только для задач администрирования, например для настройки часового пояса.
Мы рекомендуем настраивать часовой пояс контейнера с помощью служебной программы TZUtil.exe или командлета PowerShell Set-TimeZone. Эти служебные программы постоянно обновляются и позволяют легко настроить часовой пояс. Любой другой метод требует напрямую взаимодействовать с системными API. Версии базовых образов с TZUtil.exe или PowerShell будут работать без дополнительной настройки. Базовый образ Nanoserver является исключением, так как этот образ не поддерживает TZUtil.exe или PowerShell по умолчанию, поэтому при работе с ним требуется специализированная служебная программа для взаимодействия с системными API. В любом случае новые записанные приложения НЕ должны принимать зависимость от часового пояса операционной системы, если только это не абсолютно необходимо, но должны учитывать его в данных и логике приложения.
Пример с использованием Windows Server 2019
Ниже приведен пример настройки виртуализированного часового пояса с использованием последней версии базового образа Windows Server 2019 с основными серверными компонентами.
После запуска контейнера настройте часовой пояс на соответствие часовому поясу узла (в этом примере это тихоокеанское поясное время), как показано ниже:
Задайте для узла часовой пояс «Центральноазиатское стандартное время (UTC+6:00)» и обратите внимание, что часовой пояс «Тихоокеанское стандартное время» по-прежнему действует для контейнера:
Обратите внимание, что при первом запуске контейнера конфигурация задается в соответствии с конфигурацией при создании базового образа, если только вы не настроите ее самостоятельно. В большинстве случаев для базовых образов Windows по умолчанию используется тихоокеанское поясное время.
Затем задайте для контейнера часовой пояс «Поясное время Самоа»:
Теперь часовой пояс контейнера изменен на «Поясное время Самоа», но на узле используется поясное время Центральной Азии. Эта конфигурация сохраняется при сохранении состояния контейнера.
Если вы перезапустите контейнер без сохранения его состояния, для часового пояса задается часовой пояс узла, как показано ниже: