Задача: Столкнулся что у меня на тестовом сервере для подрядчиков (пилят переход 1С 7.7
на 1С 8
или работу в паре) настал момент, когда Grace Period
использования роли терминального сервера начал подходить к концу, оставалось около 9
дней бесплатного использования (из 120
дней полнофункционального использования).
ISO образ из которого установлена система: SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO
OS: Windows Server 2016 Std (Microsoft Windows [Version 10.0.14393])
Как всегда, сперва просили терминальный сервер для подрядчиков, а уже сейчас это сложная система с различными доступами в боевую сеть, хранилище конфигурации, доступы мобильных клиентов для отладки, но только я знаю, как оно устроено и что от чего зависит.
Для решения своей задачи я обратился к своего блогу: https://win.ekzorchik.ru где есть заметка "Как сбросить grace period TS Windows Server 2016"
но вот попытавшись на текущем месте работы проделать все по ней столкнулся:
Шаг №1:
Смотрим количество дней, оставшихся в использовании терминальным сервером из 120
дефолтных, как оценочные:
Logon (Administrator) in system: srv-ts01
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting where (__CLASS !="") call getgraceperioddays | findstr /I "DaysLeft" DaysLeft = 8;
Шаг №2:
Обнаружил что в заметке ссылка на скачивание утилиты subinacl.msi
битая, нашел в своем домашнем хранилище софта нужную утилиту. Ссылку
поправил. Скачал, устанавливаю в текущую систему, каталог установки по умолчанию: C:\Program Files (x86)\Windows Resource Kits\Tools\
, оставляю. После копирую из данного каталога, установленного по умолчанию утилиту subinacl.exe
в каталог C:\Windows\system32
Win + X - Command Prompt (Admin)
C:\Users\Administrator>subinacl.exe SubInAcl version 5.2.3790.1180 Invalid Argument ! Use : SubInacl /help to get the usage information or SubInAcl /help syntax to understand SubInAcl syntax.
Шаг №3:
Применяю действия из заметки по сбросу Grace Period:
Win + X - Command Prompt (Admin)
C:\Users\Administrator>mkdir c:\test
(Сохраняем права доступа для раздела реестра)
subinacl.exe /output=c:\test\grace.txt /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" Elapsed Time: 00 00:00:00 Done: 1, Modified 0, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod
(Забираем владельца у ключа GracePeriod)
subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /setowner=Administrators SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : builtin\administrators is the new owner HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : 1 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod C:\Users\Administrator>
(Устанавливаем полные права доступа на ключ реестра GracePeriod)
C:\Users\Administrator>subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /grant=Administrators=F WARNING : Error parsing line + /subkeyreg Use : SubInacl /help to get the usage information or SubInAcl /help syntax to understand SubInAcl syntax. Elapsed Time: 00 00:00:00 Done: 0, Modified 0, Failed 0, Syntax errors 1 Last Syntax Error:WARNING : Error parsing line + /subkeyreg
Вот почему ошибка, я ведь делаю эти шаги уже не первый раз и иногда вылезает непонятная ошибка парсинга синтаксиса, а вот просто команду выше выделил еще раз, скопировал в буфер и вставил, и она успешно отработала:
C:\Users\Administrator>subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /grant=Administrators=F SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : delete Perm. ACE 4 builtin\administrators SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : new ace for builtin\administrators HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : 2 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod C:\Users\Administrator>
(Удаляем ключ ответственный за триал период в 120 дней)
C:\Users\Administrator>reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /v L$RTMTIMEBOMB_1320153D-8DA3-4e8e-B27B-0D888223A588 /f The operation completed successfully.
На заметку: действия по изменению прав доступа выше обязательно должны отработать у Вас в противном случае Вы не сможете удалить ключ реестра ответственный за триал период в 120
дней.
(Возвращаю изначально выставленные системой права доступа на реестр)
На заметку: между subinacl.exe
и ключом /subkeyreg
не дожно быть более одного пробела
subinacl.exe /subkeyreg -> только один пробел должен быть
только тогда команда отработала
C:\Users\Administrator>subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /deny=Administrators= SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : delete Perm. ACE 4 builtin\administrators HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : 1 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod C:\Users\Administrator>subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /grant=Administrators=QEYA SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : new ace for builtin\administrators HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : 1 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod C:\Users\Administrator>subinacl.exe /subkeyreg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /setowner="NETWORK SERVICE" SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : nt authority\network service is the new owner HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod : 1 change(s) Elapsed Time: 00 00:00:00 Done: 1, Modified 1, Failed 0, Syntax errors 0 Last Done : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod C:\Users\Administrator>
(Отлично! Отправляем систему в перезагрузку активации)
C:\Users\Administrator> shutdown /r /t 3
(Проверяем количество дней на использование)
C:\Users\Administrator>wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting where (__CLASS !="") call getgraceperioddays | findstr /I "DaysLeft" DaysLeft = 119; C:\Users\Administrator>
Шаг №3:
А теперь рассмотрим действия которые можно сделать не прибегая к установке утилиты subinacl.exe
в систему, делать будем GUI
средствами системы. Запускаем реестр (regedit.exe)
предварительно авторизовавшись в системе с правами локального Администратора:
Win + R - regedit.exe
открываем ключ:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod
через правый клик мышью на GracePeriod
открываем Permissions, Advanced.
По умолчанию владельцем значится: Owner: Network Services
нажимаем Change
, указываем учетную запись Administrator
и отмечаем галочкой Replace owner on subcontainers and objects
и Replace all child object permission entries with inheritable permission entries from this object
(см. скриншот ниже для наглядного понимания)
нажимаю Apply, Yes, OK
После чего группу Administrators
даем все права: Full Control
отмечаем галочкой и нажимаем Apply, OK
(см. скриншот ниже для наглядного понимания)
и только теперь у текущей учетной записи (Login: Administrator)
есть права на удаление ключа ответственного за триал период в 120
дней, через правый клик мышью на нем и выбираю Delete, Yes
(см. скриншот ниже для наглядного понимания)
Затем отправляю систему в перезагрузку, после система автоматически создал необходимый ключ и у Вас снова 120
дней полнофункционального использования роли терминального сервера.
Win + X - Shut down or sign out - Restart, Continue
На заметку: Можно, как и через консоль командной строки с применение утилиты subinacl.exe
вернуть права на реестр, а можно и оставить как есть дабы в дальнейшем уже не прибегать к помощи данной заметки.
На заметку: Заметки
по Grace Period
опубликованные для Server 2008 R2, 2012R2, Server 2016, Server 2019 с учетом данной все действующие и работоспособные.
Итого: Когда один раз делаешь что-либо, составляешь заметку и порой все по ней отрабатывает, а если проходит много времени, возвращаясь к ней всегда всплывают нюансы, которые тогда посчитал не сильно значимыми и не отразил их в заметке, но я не забыл на этот раз и дополнил заметку — а это Важно. Так по большей части только мне и предстоит ждать помощи только от себя самого.
Заметка работоспособна, на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.