Как да промените собственика на ключ или клон на регистъра от командния ред

Понякога, за да промените нещо в системния регистър (извършете ощипване или просто направете необходимата промяна), първо трябва да получите достъп до клона / ключа на системния регистър. Изглежда, че това не е проблем за администратора. Но нюансът е, че дори администраторът не може да прави промени в някои клонове на системния регистър на Windows. Достъпът до такива клонове е ограничен от ACL, в които или няма разрешения за писане за групата от местни администратори, или TrustedInstaller или System са определени като собственици на такива секции. В това ръководство ще ви покажем няколко прости начина да дадете права на собственика на администратора и пълни права на защитен ключ на системния регистър..

Няма да разглеждаме графичния метод за промяна на собственика и възлагане на права чрез полезния regedit.exe и ще се спрем на възможностите за промяна на собствеността върху всеки ключ на системния регистър и осигуряване на достъп от командния ред. Всички описани по-долу методи работят във всички версии на Windows.!

Съдържание:

  • Получаване на права на собственик върху ключа на регистъра с помощта на помощната програма SubInACL
  • Промяна на собствеността и правата върху ключа на системния регистър с помощта на помощната програма SetACL
  • Получаване на права на собственик върху регистър ключ с помощта на вградената команда REGINI
  • Пример за употреба

Получаване на права на собственик върху ключа на регистъра с помощта на помощната програма SubInACL

SubInACL - Това е официална програма от Microsoft, която можете да използвате за преглед и промяна на разрешения, информация за собственика и сигурността и т.н. за файлове, папки, ключове за регистър, услуги и т.н. на прозорци .

Помощната програма е написана за Windows 2000, XP и Server 2003, но може да се използва с всички нови версии на Windows.

СТЪПКА 1:

Изтеглете помощната програма от уебсайта на Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=23510

СТЪПКА 2:

Това е стандартен инсталатор на MSI, който копира файла SubInACL.exe в папката "C: \ програмни файлове (x86) \ комплекти на ресурси \ инструменти \" в Windows x64 и в папката "C: \ програмни файлове \ ресурсни комплекти \ инструменти \" на Windows x86.

Но никой не ви притеснява просто да разархивирате MSI файла (например, използвайки 7-Zip) навсякъде, без да е необходимо да го инсталирате.

СТЪПКА 3:

Можете да изберете как да стартирате SubInACL.exe. От мястото на инсталиране (cd C: \ Program Files (x86) \ Windows Resource Kits \ Tools) или от мястото, където сами сте го разопаковали, поне от флаш устройството 🙂. Или можете да копирате SubInACL.exe в папката C: \Windows\система32 и тогава ще започне от име. Предлагаме да копирате файла subinacl.exe в папката C: \ Windows \ System32 (C: \ Windows \ SysWOW64), така че да можете да стартирате SubInACL от всяко удобно място.

СТЪПКА 4:

Нека научим как да работим с SubInACL.exe. Синтаксис на помощната програма (в командния ред с права на администратор):

SubInACL / име на име / действие

/тип: Посочете желания тип обект. Ако трябва да смените собственика на файла или папката, използвайте досие, и ако трябва да смените собственика на ключа на системния регистър, тогава използвайте keyreg или subkeyreg. Разликата между keyreg и subkeyreg е тази keyreg променя собственика само на конкретен ключ и subkeyreg променя собственика на този ключ и всички подчинени ключове.

име: Заменете този параметър с името на файла, папката или ключа на системния регистър.

/действие: Този параметър определя действието, което ще се извърши върху обекта. Е, тъй като ще сменим собственика на ключа и правата върху ключа, ще използваме /setowner=администраторите /грант=администраторите=е като действие.

Разглеждаме пример.

SUBINACL / keyreg "HKEY_LOCAL_MACHINE \ SOFTWARE \ Mozilla" / setowner = Администратори / grant = Administrators = f

забележка. В английската версия на Windows, вместо администратори, трябва да посочите администратори.

Тази команда означава, че собственикът на този ключ се променя и администраторът получава пълни права за управление на този ключ.

Е, просто трябва да замените името на ключа от примера със собствен и да изпълните командата ...

PS: Ако се интересувате да разгледате всички налични синтаксис, ключове и параметри на командата SubInACL, стартирайте с такъв ключ SubInACL /помощ

Промяна на собствеността и правата върху ключа на системния регистър с помощта на помощната програма SetACL

SetACL е безплатна помощна конзола. Трябва да изтеглите програмата и след това да стартирате необходимите команди.

СТЪПКА 1:

Изтеглете програмата SetACL: https://helgeklein.com/download/#setacl

СТЪПКА 2:

След като изтеглите, разархивирайте ZIP файла и вижте две версии на помощната програма: за x86 и за x64 версии на Windows. Трябва да използвате правилния SetACL.EXE за вашата версия на Windows. Вижте коя версия на Windows можете в System Properties.

СТЪПКА 3:

Има два начина да използвате приложението. Например, можете да запишете помощната програма в папката E: \ SetACL, след това отворете командния ред като администратор и отидете в тази папка с помощта на стандартни команди или въведете пълния път за стартиране на помощната програма, например E: \ SetACL \ SetACL.exe. Или можете да копирате SetACL.exe в системната папка C: \Windows\система32 (C: \ Windows \ SysWOW64), тогава можете да стартирате командата SetACL отвсякъде. Предлагаме да копирате файла EXE в папката C: \ Windows \ System32 (C: \ Windows \ SysWOW64).

СТЪПКА 4:

Сега, след като сте завършили всички предварителни процедури, можете да стартирате SetACL:

SetACL -on име -OT тип -actn действие

синтаксис:

Какво е подчертано смел остава непроменено, това, което се подчертава в курсив ще променим:

-за: Този параметър показва пълния път към файла или ключа на системния регистър, чийто собственик искате да промените.

-OT: Този параметър определя типа на обекта. Ако сменим собственика на файла, тогава променяме параметъра на досие. Ако ключът на системния регистър, тогава посочете рег

-actn: Този параметър показва какво да направите. Има много възможни опции, но тъй като говорим за ключове в системния регистър, по-специално за промяна на собственика или възлагане на други права на ключа, ще използваме само стойностите setowner или ас.

За да разберете по-добре как става това, вижте пример:

Да предположим, че искате да промените собственика на ключа HKEY_LOCAL_MACHINE \ SOFTWARE \ Mozilla. За да направите това, трябва да стартираме SetACL със следните параметри:

SetACL.exe -on "HKEY_LOCAL_MACHINE \ SOFTWARE \ Mozilla" -ot reg -actn setowner -ownr "n: Administrators"

SetACL.exe -on "HKEY_LOCAL_MACHINE \ SOFTWARE \ Mozilla" -ot reg -actn ace -ace "n: Administrators; p: full"

Първата команда ще направи групата местни администратори собственик на ключа, а втората ще предостави пълен достъп до ключа.

Просто трябва да промените ключовата стойност между кавички ("") на тази, от която се нуждаете.

Забележка: SetACL има много параметри, но прочетете сами за това тук (https://helgeklein.com/setacl/documentation/command-line-version-setacl-exe/).

Получаване на права на собственик върху регистър ключ с помощта на вградената команда REGINI

Тази команда е включена във всеки Windows и можем да я използваме за присвояване на разрешения на ключовете в системния регистър. Използването на командата е много просто. Създаваме скриптов файл с необходимите параметри и предаваме този файл за обработка на командата REGINI.

СТЪПКА 1:

Отваряне на бележника (Notepad) и въведете името на необходимия ключ и ACL (Списък за контрол на достъпа), използвайки този формат:

KEY_NAME [ACL]

промяна ключ_име името на ключа, от който се нуждаете, но вижте, че името на ключа е правилно, както е показано по-долу:

\ Регистър \ машина \ софтуер \ класове (за ключове от раздел HKEY_CLASSES_ROOT)

\ Регистър \ машина (за ключове от секцията HKEY_LOCAL_MACHINE)

\ Регистър \ потребител \ user_sid (за клавишите от секцията HKEY_CURRENT_USER) (заменете user_sid към правилния идентификационен номер за сигурност на този потребител)

\ Регистър \ потребител (за ключове от секцията HKEY_USERS)

Например, нека да разгледаме ключа "HKEY_LOCAL_MACHINE \ SOFTWARE \ Mozilla" и да напишем скрипта:

\ Регистър \ машина \ СОФТУЕР \ Mozilla

замени ACL към списъка, от който се нуждаем:

1(за предоставяне на пълен достъп на администраторите)Дайте на администраторите пълен достъп
2(за да предоставите на администраторите достъп за четене)Дайте на администраторите достъп само за четене
3(за да предоставите на администраторите достъп за четене и запис)Дайте право на администраторите да се променят
4(за да предоставите на администраторите достъп за четене, писане и изтриване)Дайте право на администраторите да променят и изтриват
5(за предоставяне на пълен достъп на Създател / Собственик)Дайте пълен достъп на създателя / собственика
6(за да предоставите на създателя / собственика достъп за четене и запис)Дайте на създателя / собственика достъп за промяна
7(да предоставим на всички пълен достъп)Дайте на всички пълен достъп
8(за да предоставите на всички достъп за четене)Дайте на всеки достъп само за четене
9(за да предоставите на всички достъп за четене и запис)Дайте право на всеки да се променя
10(за да предоставим на всички достъп за четене, писане и изтриване)Дайте право на всеки да променя и изтрива
17(за осигуряване на пълен достъп до системата)Дайте пълен достъп на системата
18(за осигуряване на достъп до четене и запис на системата)Дайте правото на системата да се променя
19(за осигуряване на достъп до четене на системата)Дайте на системата достъп само за четене

Сега [ACL] в скрипта ще бъде инсталирано нещо подобно:

[1 6 9 17]

Както е показано в таблицата, това ще даде пълен достъп до Администраторите и Системата, както и правото да промените създателя на ключове и всичко останало.

Финалната линия ще изглежда така:

\ Регистър \ машина \ HKEY_LOCAL_MACHINE \ СОФТУЕР \ Mozilla [1 6 9 17]

Можете да използвате всякакви ACL комбинации според нуждите си.

Забележка: Не забравяйте, че съществуващите разрешения за ключа, посочен в скрипта, ще бъдат заменени с нови. Не забравяйте да включите разрешения за всички акаунти в скрипта. Ако забравите да предоставите разрешения на акаунта в СИСТЕМАТА, този акаунт ще бъде премахнат от списъка за достъп.

СТЪПКА 2:

Запазваме скрипта под името ACL.TXT, след това отваряме командния ред като администратор и изпълняваме нашата команда:

Regini full_path_of_script_file

Или в нашия случай ще изглежда така

REGINI c: \ install \ acl.txt

И това е всичко. Разрешенията ще бъдат променени незабавно..

Е, нещо такова. Метод 1 е най-ефективният и работи на 100%.

Пример за употреба

Необходимо беше да се стартира хостът за отдалечен работен плот, за да се предостави на група разработчици споделен достъп до сървъра за конфигуриране на определени приложения и базата данни. В бъдеще не беше планирано да се осигурява отдалечен достъп до този сървър. Имаше повече от 2 разработчици и всеки искаше да работи едновременно. И обеща да завърши за по-малко от 4 месеца.

Не е казано по-рано, отколкото е направено. Устройството за отдалечен работен плот на Windows 2012 R2 беше повдигнато и започнахме да използваме 120-дневния безплатен период. Но ... 4 месеца не бяха достатъчни (както винаги). Не исках да използвам правен ключ за TS, тъй като работата е временна, както казах по-рано. Трябваше ... да се възползвам от знанията, които току-що получи.

Ключът в системния регистър, отговорен за преброяването на 120-дневния период за грация, се намира тук:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ RCM \ GracePeriod

Групата Администратори има достъп само до четене до този ключ..

Използван е метод 1. Така да се каже, самите Microsoft са се наказвали :)

SUBINACL / keyreg "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ RCM \ GracePeriod" / setowner = администратори / grant = администратори = f

Промени собственика и даде пълен достъп на администраторите

По-нататък по-лесно.

Изтрийте съдържанието на този ключ

reg изтрийте "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Терминален сървър \ RCM \ GracePeriod" / va / f

И след рестартирането получаваме…. Точно така! 120 дни от новия безплатен период.

Например, можете да изпълните тази команда като скрипт и да я изпълнявате на всеки 115 дни, както е планирано.

Да го използвате или не, зависи от вас, като се консултирате с вашата съвест и жаба 🙂