Как получить доступ к файлам, папкам, разделам реестра в Windows 10, 8, 7 и Vista

OSzone.net » Microsoft » Windows Vista » Настройка » Как получить доступ к файлам, папкам, разделам реестра в Windows 10, 8, 7 и Vista
Автор: Павел Кравченко
Иcточник: Блог
Опубликована: 14.10.2008

Содержание

При отсутствии доступа к локальному объекту вы не можете управлять его разрешениями, отсутствие такой возможности может быть компенсировано сменой владельца объекта, после чего вы сможете управлять его разрешениями. Сделать это можно несколькими способами, рассмотрим их по порядку.

Способ 1. Изменение владельца с использованием графического интерфейса Windows

  1. Откройте проводник (редактор реестра) и перейдите к папке/файлу/разделу реестра, к которому необходимо получить доступ.
  2. Изменение владельца файла или папки в Windows 10/8.1/8

    1. Нажмите правую кнопку мыши и выберите в контекстном меню Свойства
    2. Перейдите на вкладку Безопасность
    3. Нажмите кнопку Дополнительно


        

    4. Нажмите ссылку Изменить вверху окна параметров безопасности.

    5. После нажатия ссылки для изменения владельца вы увидите стандартное диалоговое окно выбора пользователя. Напечатайте в поле 'Имена выбираемых объектов' имя своей учетной записи или название группы Администраторы. Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите группу Администраторы (или свою учетную запись) и нажмите кнопку OK.

      Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".



    После того как вы нажмете кнопку OK для изменения владельца папки, может быть показано предупреждение об отсутствии разрешений для вашей учетной записи. Нажмите кнопку Да для получения полного доступа к объекту.

       

  3. Изменение владельца файла или папки в Windows 7/Vista

    1. Выполните шаги 2.1-2.3
    2. Перейдите на вкладку Владелец и нажмите кнопку Изменить

    3. Группа Администраторы и текущая учетная запись будут доступны для выбора в основном окне. Если их нет, то нажмите кнопку 'Другие пользователи и группы' и добавьте пользователя или группу так же как описано выше для Windows 10/8 на шаге 2.5

      Если вы меняете владельца папки, то по умолчанию будет изменен владелец только этой папки, но не вложенных в нее папок и файлов. Для того, чтобы заменить владельца всех дочерних объектов папки, установите флажок на параметре "Заменить владельца подконтейнеров и объектов".


    После того как вы нажмете кнопку OK для изменения владельца папки, может быть показано предупреждение об отсутствии разрешений для вашей учетной записи. Нажмите кнопку Да для получения полного доступа к объекту.

  4. Изменение владельца раздела реестра

    1. Нажмите правую кнопку мыши на подразделе реестра (в левой части редактора реестра) и выберите пункт Разрешения
    2. Нажмите кнопку Дополнительно
    3. Если вы используете Windows 10 или 8, выполните шаги 2.4 и 2.5 инструкции изменения владельца файлов и папок

      Если вы используете Windows 7 или Vista, выполните шаги 3.2 и 3.3 инструкции изменения владельца файлов и папок

  5. Установка разрешений объекта для учетной записи

    1. На вкладке Безопасность нажмите кнопку Изменить под списком пользователей и групп


    2. Нажмите кнопку Добавить


    3. Введите имя своей учетной записи и нажмите ОК


      Если вы не знаете точно как написать, то нажмите в окне выбора пользователя кнопку Дополнительно, а в следующем кнопку Поиск. Выберите свою учетную запись и нажмите кнопку OK.

    4. Установите необходимые разрешения. Если установить разрешение Полный доступ, то вы автоматически получаете все перечисленные ниже


Способ 2. Использование утилит командной строки takeown и icacls

Примечание. Этот способ можно применить только для получения доступа к файлам или папкам, но не к разделам реестра.

Использование утилиты командной строки takeown для изменения владельца объектов

  1. Откройте командную строку (cmd) от имени администратора
    Примечание. Запуск от имени администратора в данном случае обязателен независимо от того, какими правами обладает учетная запись, в которой вы работаете в данный момент. Исключение может составлять только случай, когда вы работаете во встроенной учетной записи Администратор, которая по умолчанию отключена.
  2. Для назначения текущего пользователя владельцем файла выполните команду takeown /f "<полный путь к файлу>". Пример:
    takeown /f "C:\Windows\System32\imageres.dll"
  3. Для назначения текущего пользователя владельцем папки и всего ее содержимого выполните команду takeown /f "<полный путь к папке>" /r /d y. Пример:
    takeown /f "C:\System Volume Information" /r /d y
    Параметры, используемые в команде:
    • /f - шаблон для имени файла или папки, поддерживает подстановочные символы, например takeown /f %windir%\*.txt
    • /r - рекурсия: обрабатываются все файлы и подкаталоги в указанной папке
    • /d - применяется совместно с /r для подавления запроса получения доступа к каждому файлу или подкаталогу
    • y - применяется совместно с /d для подтверждения смены владельца каждого файла или подкаталога
  4. Для назначения группы Администраторы владельцем файла или папки используются такие же команды, но с параметром /a. Примеры:
    takeown /f "C:\Windows\System32\imageres.dll" /a
    takeown /f "C:\System Volume Information" /a /r /d y

    Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?

Использование утилиты командной строки icacls для изменения разрешений объектов

  1. Для изменения разрешений файла используется команда icacls <полный путь к файлу> /grant <имя пользователя или группы>:F /c /l. Пример:
    icacls "C:\Windows\System32\imageres.dll" /grant администраторы:F /c /l
    Параметры, используемые в команде:
    • /grant - предоставление указанных разрешений
    • :F - предоставление полного доступа указанной учетной записи или группе
    • /c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
    • /l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
    В примере группе Администраторы предоставлены разрешения Полный доступ.
  2. Для изменения разрешений папки используется команда icacls <полный путь к папке> /grant <имя пользователя или группы>:F /t /c /l /q. Пример:
    icacls "C:\System Volume Information" /grant администраторы:F /t /c /l /q
    Параметры, используемые в команде:
    • /grant - предоставление указанных разрешений
    • :F - предоставление полного доступа указанной учетной записи или группе
    • /t - обрабатываются все файлы и подкаталоги в указанной папке
    • /c - продолжение обработки при файловых ошибках, ошибки выводятся на экран
    • /l - используется для обработки символьных ссылок, с этим параметром обрабатывается сама ссылка, а не ее целевой объект
    • /q - подавляются все сообщения об успешной обработке, сообщения об ошибках будут выводиться на экран

    Полный синтаксис утилиты командной строки takeown вы можете получить командой takeown /?

Как установить службу TrustedInstaller владельцем файлов и папок

Владельцем многих системных файлов и папок является служба TrustedInstaller. В случае изменения владельца таких файлов или папок, система будет работать нестабильно, а многие задачи обслуживания системы перестанут работать.

В случае если вы изменили владельца системной папки для удаления или записи файлов, или файла для его замены или редактирования, после выполнения необходимых действий требуется назначить владельца по умолчанию, то есть TrustedInstaller.

Использование графического интерфейса Windows

  1. Выполните шаги с 2.1 по 2.4 инструкции изменения владельца файлов и папок
  2. Напечатайте в поле 'Имена выбираемых объектов' имя службы NT Service\TrustedInstaller и нажмите кнопку OK.


    Если вы назначаете TrustedInstaller владельцем папки, не рекомендуется устанавливать флажок на параметре 'Заменить владельца подконтейнеров и объектов'. Дело в том, что при этом будет заменен владелец всех подкаталогов и файлов, содержащихся в папке, что также может привести к нестабильной работе системы из-за отсутствия разрешений у других пользователей. Например, по умолчанию владельцем папки \Windows\ является TrustedInstaller, но владельцем папки \Windows\SoftwareDistribution\ является Система.

Использование утилиты командной строки icacls

  1. Для изменения владельца файла или папки на TrustedInstaller откройте командную строку (cmd) от имени администратора
  2. Выполните следующую команду команду:
    icacls "C:\System Volume Information" /setowner "NT Service\TrustedInstaller" /t /c
    В результате ее выполнения владельцем папки C:\System Volume Information будет установлен TrustedInstaller.

Добавление команды смены владельца объекта в контекстное меню проводника

Для упрощения процедуры смены владельца вы можете добавить соответствующий пункт в контекстное меню проводника.
В предлагаемом варианте также используются утилиты командной строки takeown и icacls с определенными параметрами, а полученная команда установит текущего пользователя владельцем объекта, на котором будет применяться.

Вы можете скачать готовые файлы реестра для импортирования по этой ссылке: TakeOwnership.zip

Содержимое архива:

  1. Add_Take_Ownership_RU.reg - для добавления пункта меню смены владельца в русской версии Windows
  2. Add_Take_Ownership_EN.reg - для добавления пункта меню смены владельца в английской версии Windows
  3. Add_Take_Ownership_with_Pause_RU.reg - для добавления пункта меню смены владельца, при использовании которого окно выполнения команды не закрывается автоматически после обработки. В окне выполнения команды выводится результат обработки. Файл используется добавления пункта меню в русской версии Windows.
  4. Add_Take_Ownership_with_Pause_EN.reg - для добавления пункта меню смены владельца в английской версии Windows. Окно выполнения команды не закрывается автоматически, так же как и для файла №3.
  5. Remove_Take_Ownership.reg - для удаления пункта меню смены владельца независимо от языка системы и используемого файла для его добавления.

Подробнее о применении твиков реестра вы можете прочитать здесь: Применение твиков реестра

Примечание. Если ранее вами был добавлен другой пункт контекстного меню с использованием такого же метода (запись в раздел реестра HKEY_CLASSES_ROOT\*\shell\runas), то он будет заменен.

Описание файлов реестра, содержащихся в архиве:

Добавление команды смены владельца объектов на TrustedInstaller в контекстное меню проводника

Для изменения владельца файлов и папок на TrustedInstaller вы также можете добавить контекстное меню проводника.
В предлагаемом варианте используется утилита командной строки icacls.

Готовые файлы реестра для добавления и удаления этого пункта меню: RestoreOwnerShip.zip

Обратите внимание, что для реализации любого пункта контекстного меню (для назначения владельцем текущего пользователя и для добавления пункта изменения владельца на TrustedInstaller) используются одинаковые разделы реестра и параметры. В связи с этим добавление обоих пунктов одновременно, в рассматриваемом варианте, невозможно.
В следующей главе статьи мы рассмотрим варианты одновременного сосуществования этих двух пунктов контекстного меню.

Добавление каскадного меню с пунктами смены владельца на текущего пользователя и на TrustedInstaller

В прошлых примерах мы использовали подраздел реестра runas, команды по умолчанию из которого запускаются с запросом повышения прав, то есть по сути выполняется запуск от имени администратора. Добавление каскадного меню с несколькими пунктами не дает такого преимущества, но запуск команд от имени администратора необходим для их выполнения.

Есть несколько путей решения этой проблемы, но использование сторонней утилиты для запуска команды с повышением привилегий все-таки является самым быстрым и простым в данном случае.

Таких утилит несколько, каждая из них обладает своими преимуществами, но большинство из них являются проектами энтузиастов и не поддерживаются и не дорабатываются уже довольно долгое время.

Исключение составляют NirCmd от известного разработчика полезных утилит Nir Sofer и PsExec Марка Руссиновича.

Я остановил свой выбор на NirCmd ввиду того, что уже использую эту утилиту для других задач, а PsExec все более узкоспециализированная утилита.

Весь процесс добавления пунктов меню и создания каскадных меню уже был рассмотрен на страницах блога.

  1. Cкачайте NirCmd x86 (для 32-разрядных систем) или NirCmd x64 (для 64-разрядных систем)
  2. Скопируйте файл nircmd.exe из архива в папку Windows
    Вы можете этого не делать, но в таком случае вам придется модифицировать предложенные файлы реестра и указать полный путь к nircmd.exe
  3. Скачайте архив Take_OwnerShip_Restore_Owner_Cascade.zip и извлеките reg-файлы из него в отдельную папку
  4. Запустите файл Add_Take_Ownership_Restore_Owner.reg для добавления меню


Для удаления этого меню используйте файл Remove_Take_Ownership_Restore_Owner.reg


Ссылка: http://www.oszone.net/7836/take_ownership