Поемете собствеността върху файл или папка с помощта на командния ред в Windows

click fraud protection

Всеки файл или папка в NTFS том има собственик. Някои системни файлове са собственост на TrustedInstaller, някои от SYSTEM акаунт, а други от групата „Администратори“. Ако потребител създаде файл или папка, този потребител обикновено е собственикът на файла или папката. Собственикът е този, който може да присвоява разрешения (Разрешаване или Отказване) на други потребители за този обект.

Ако потребителят не е собственик на файл или папка или няма разрешения за достъп до файла, той получава грешката „достъпът е отказан“ при достъп до обекта. Ако този потребител е администратор, той може да поеме собствеността върху обекта, като използва раздела Свойства – Защита на файла или папката. След това той може да си възложи необходимите разрешения.

Тази публикация ви казва как да поемете собствеността върху файл или папкаи задайте необходимите разрешения за него, като използвате командния ред вместо GUI.

Съдържание

  • Поемане на собственост върху файл с помощта на takeown.exe
  • Задайте разрешения за файлове с помощта на icacls.exe
  • Поемане на собственост върху папка с помощта на takeown.exe
  • Задайте разрешения за папка с помощта на icacls.exe
  • Вземете собствеността и задайте разрешения чрез щракване с десния бутон върху менюто [Скрипт/Настройка]

Допълнителна информация

  • ИНФОРМАЦИЯ: icacls.exe също може да промени собствеността
  • Връщане на собствеността към TrustedInstaller
  • ГРЕШКА: icacls.exe /setowner „Достъпът е отказан“
  • Използване на SetACL.exe за поемане на собственост и задаване на разрешения [Безплатна програма на трета страна]

Windows включва инструмент от командния ред с име Takeown.exe, който може да се използва от an администраторски команден ред за бърза промяна на собствеността върху файл или папка. Ето как да поемете собствеността върху файл или папка и след това задайте разрешения за акаунт с помощта на командния ред.

Поемете собствеността, като използвате takeown.exe от командния ред

Поемане на собственост върху файл

Отворете ан повишен команден ред прозорец. Използвайте следния синтаксис, за да поемете собствеността върху файл:

ВЗЕМАНЕ /F 

Сменете с действителното име на файла с пълния път.

Влезлият в момента потребител вече е собственик на файла.

За да зададете Администратори групирайте собственика на файла, използвайте превключете в допълнение:

ВЗЕМАНЕ /F 
  • Дава собственост на групата администратори вместо на текущия потребител. Ако не е посочено, собствеността върху файла ще бъде предоставена на влезлия в момента потребител. Този параметър е не различаващ главни от малки букви.

Ако операцията е била успешна, трябва да видите следното съобщение:

„УСПЕХ: Файлът (или папката): „име на файл“ вече е собственост на потребител „Име на компютър\Потребителско име“.“

или

УСПЕХ: Файлът (или папката): „име на файл“ вече е собственост на групата администратори.

Задаване на разрешения за файл

След това да се отпусне Администратори Разрешения за пълен контрол за файла, използвайте ICACLS. Ето синтаксиса:

ICACLS /администратори на безвъзмездни средства: F

Пример 2: За да зададете разрешения за пълен контрол за влезлия в момента потребител, използвайте тази команда:

ICACLS /предоставя %потребителско име%:F

%потребителско име% представлява името на акаунта на влезлия в момента потребител. ICacls приема тази променлива директно.

Пример 3: За да зададете разрешения за пълен контрол за потребител с име Джон, използвайте тази команда:

ICACLS /грант Джон: Ф

Поемане на собственост върху папка

Използвайте следния синтаксис:

отнемане /е 

(или)

отнемане /е  /a
  • /a Дава собственост на групата администратори вместо на текущия потребител. Ако /a не е посочено, собствеността ще бъде предоставена на влезлия в момента потребител. Този параметър е не различаващ главни от малки букви.

Ще видите следния изход:

УСПЕХ: Файлът (или папката): „име на папка“ вече е собственост на потребител „име на компютър\потребителско име“

(или)

УСПЕХ: Файлът (или папката): „име на папка“ вече е собственост на групата на администраторите.

Промяна на собствеността рекурсивно:

За да промените собствеността на папка, нейните подпапки и файлове във всяка подпапка, използвайте този синтаксис:

отнемане /е /г /г г

Влезлият в момента потребител вече е собственик на папката.

За да зададете Администратори групирайте собственика на папката, нейните подпапки и файлове рекурсивно, използвайте превключете в допълнение:

ВЗЕМАНЕ /F  /a /r /d y
  • Рекурсия: инструктира инструмента да работи с файлове в посочената директория и всички поддиректории.
  • prompt Отговорът по подразбиране, използван, когато текущият потребител няма разрешение за „списък папка“ в директория. Това се случва, докато работите рекурсивно (/R) на поддиректории. Валидни стойности „Y“ за поемане на собственост или „N“ за пропускане.

Задаване на разрешения за папка

След това да зададете Администратори група Разрешения за пълен контрол за папката, използвайте този синтаксис:

icacls /грантови администратори: F /T

В параметърът се добавя, така че операцията да се извършва през всички поддиректории и файлове в тази папка.

Помощ от командния ред:

За да знаете пълната информация за използването на Takeown.exe и ICacls.exe, изпълнете тези команди от прозорец на командния ред.

отнемам /?
icacls /?

По-лесни методи за поемане на собственост

Команден скрипт

За допълнително опростяване на процеса на придобиване на собственост, Тим Снит на Microsoft предоставя .CMD файл (команден скрипт на Windows), който поема собствеността и присвоява разрешения за пълен контрол на администраторите за директорията. За повече информация прочетете публикацията на Тим, озаглавена Тайна № 11: Изтриване на неизтриваемите.

Добавете командата „Поемане на собственост“ към менюто с десен бутон

Това отново използва специалното руни глагол в Windows Vista и по-нова версия, която разгледах по-рано (РЕФRunAs).

чрез WinMatrix.com

Изтегли takeown_context.reg и запишете на работния плот. Щракнете с десния бутон върху файла и изберете Обединяване. Щракнете върху да при поискване за потвърждение. Това добавя разширена команда с име Вземете собствеността в контекстното меню за файлове и директории. За да получите достъп до командата, трябва да натиснете и задържите SHIFT ключ и след това щракнете с десния бутон върху файл или папка.

(Можете да прочетете повече за настройката в статията Поемете собствеността върху файл или папка чрез щракване с десния бутон на контекстното меню в Windows.)


Допълнителна информация

Горният раздел обхваща повечето неща, от които се нуждаете. Прочетете по-долу, ако имате нужда от още съвети по тази тема.

icacls.exe също може да промени собствеността върху файл или папка!

Takeown.exe и Icacls.exe са двата вградени конзолни инструмента в Windows, които ви позволяват да промените собствеността на файл или папка и съответно да зададете разрешения за контрол на достъпа. Takeown.exe задава текущо влезлия потребителски акаунт като собственик на обект (файл или папка).

Въпреки това, с Takeown.exe не можете да създадете друг акаунт като собственик на обект.

Знаете ли, че инструментът icacls.exe може да се използва и за промяна на собствеността?

За да промените собствеността на акаунт на трета страна (т.е. акаунта, който в момента не е влязъл) или група, можете да използвате icacls.exe с /setowner аргумент на командния ред, вместо takeown.exe.

Променете собствеността върху файл или папка с помощта на icacls.exe

Видяхме как да промените собствеността с помощта на icacls.exe в последната част на статията Поемете собствеността върху файл или папка с помощта на командния ред в Windows. Ето още няколко примера:

Следва синтаксисът на командния ред за промяна на собствеността върху файл или папка с помощта на icacls.exe:

icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"

Примери: Набор №1: Промяна на собствеността върху един файл или папка

icacls "D:\Annual Reports\2020\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Администратори"

Ако операцията е била успешна, ще видите следното съобщение:

обработен файл: file_or_folder_name
Успешно обработени 1 файла; Неуспешна обработка на 0 файла

Пример №2: Промяна на собствеността за папка (подпапка и файлове) рекурсивно

За да промените собствеността на папка, нейните подпапки и всички файлове във всички подпапки рекурсивно, използвайте превключвател (преминаване) в допълнение:

icacls "име_на папка" /setowner "Администратори" /T
  • показва, че тази операция се извършва върху всички съвпадащи файлове/директории под директориите, посочени в името.

Горната команда задава TrustedInstaller като собственик на папката, нейните подпапки и всички файлове във всички подпапки.


Възстановете собствеността обратно към TrustedInstaller

Понякога, за да отстраните проблем, може да се наложи да промените a файл с данни като XML или a ключ на системния регистър собственост на TrustedInstaller. За това първо трябва да поемете собствеността върху файла, папката или ключ на системния регистър.

След като промените файловете или настройките, трябва да върнете собствеността обратно към Доверен инсталатор, ако TrustedInstaller е бил предишният или първоначалният собственик. За да върнете собствеността към TrustedInstaller, използвайте следните стъпки:

Услугата Windows Modules Installer или TrustedInstaller позволява инсталирането, модифицирането и премахването на актуализации на Windows и допълнителни компоненти. По подразбиране TrustedInstaller също е собственик на много критични ключове в системния регистър и системни файлове.

  1. Щракнете с десния бутон върху файл или ключ на системния регистър и щракнете върху Разрешения.
  2. Щракнете върху Разширени, за да отворите диалоговия прозорец Разширени настройки за сигурност.
  3. До „Собственик:“ щракнете върху Промяна.
  4. В диалоговия прозорец Избор на потребител или група въведете „NT SERVICE\TrustedInstaller” и натиснете ENTER.
    поемете собствеността върху файл
  5. Щракнете върху Приложи, OK.
    поемете собствеността върху файл

Това променя собствеността на обекта (файл, папка или ключ на системния регистър) към TrustedInstaller или Windows Modules Installer.

СВЪРЗАНИ:Поемете собствеността върху ключ на системния регистър и задайте разрешения с помощта на командния ред

Използване на команда icacls.exe, за да зададете TrustedInstaller като собственик на файл

От прозорец на командния ред на администратора използвайте следния синтаксис на командния ред:

icacls "път\име на файл" /setowner "NT Service\TrustedInstaller"

пример:

icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"

TrustedInstaller вече притежава файла WindowsStore.admx.


Достъпът до icacls /setowner е отказан?

Понякога, на icacls.exe /setowner командният ред може да срещне следната грешка:

име на файл: Достъпът е отказан. Успешно обработени 0 файла; Неуспешна обработка на 1 файла

Това може да се случи, когато срещне твърда NTFS връзка. Грешката обикновено изскача, когато се опитате да промените собствеността върху защитени файлове в директорията на Windows - напр. C:\Windows\Notepad.exe. А твърда връзка е представянето на файловата система на файл, чрез който повече от един път препраща към един файл в същия том.

Например, файловете Notepad.exe имат два твърдо свързани файла, които можете да видите с помощта на следната команда:

fsutil.exe списък с твърди връзки C:\Windows\notepad.exe
fsutil списък с твърди връзки notepad.exe

Можете да видите, че Notepad.exe е твърдо свързан със следните файлове:

C:\Windows\System32\Notepad.exe. C:\\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe

В icacls.exe /setowner командата среща ОТКАЗАН ДОСТЪП грешка при обработката на тези твърди връзки.

Имайте предвид, че в документацията на icacls.exe се казва: „Тази опция не налага промяна на собствеността; използвайте за тази цел помощната програма takeown.exe.

Ако срещнете грешки „Достъпът е отказан“, когато задавате собствеността с помощта на Icacls, може да се наложи да разчитате на Takeown.exe, SubInACL или помощната програма за команден ред SetACL.exe на трета страна (вижте следващия параграф).


Използване на SetACL.exe за поемане на собственост и задаване на разрешения

SetACL.exe е инструмент за команден ред на трета страна (от HelgeKlein.com), който разгледахме преди.

SetACL: Аргументи на командния ред

Преди да продължите, нека да видим синтаксиса на командния ред за промяна на собствеността върху файл/регистров регистър и разрешенията с помощта на SetACL.

SetACL -on objectname -ot objecttype -actn action
  • -На: Посочете пътя до обекта, с който SetACL трябва да работи (например файл, ключ на системния регистър, мрежов дял, услуга или принтер).
  • -о т: Посочете типа обект. За да промените собствеността или разрешенията за файл или папка, използвайте типа обект файл. За ключове в системния регистър използвайте типа обект обл
  • -actn: Посочете действието какво трябва да направи SetACL срещу посочения обект. За да поемете собствеността, задайте действието като сетаун. За да промените разрешенията, задайте действието като асо.
  • -собственик: Посочете име или SID на довереник (потребител или група) в този формат — напр. "n: Администратори"

(Виж SetACL документация за пълния списък с обекти, типове и поддържани действия.)

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

Примери: Промяна на собствеността върху един файл или папка:

setacl.exe -на c:\windows\notepad.exe -ot файл -actn setowner -ownr "n: NT Service\TrustedInstaller" setacl.exe -на c:\windows\notepad.exe -ot файл -actn setowner -ownr "n: Администратори" setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n: John" setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n: NT Service \Доверен инсталатор" setacl.exe -на "d:\test" -ot файл -actn setowner -ownr "n: Администратори" setacl.exe -на "d:\test" -ot файл -actn setowner -ownr "n: Джон"

Примери: Промяна на собствеността рекурсивно:

Опция 1: За да зададете собствеността върху папка и нейните подпапки (не за файлове) рекурсивно, използвайте един от тези примери:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n: NT Service\TrustedInstaller" -rec cont. setacl.exe -on d:\test -ot file -actn setowner -ownr "n: Администратори" -rec cont. setacl.exe -on d:\test -ot file -actn setowner -ownr "n: Ramesh" -rec cont
  • -рец – рекурсията е разрешена.
  • прод – Само рекурсивни и процесни директории.

Вариант 2: За да зададете собствеността върху файловете в папка и нейните подпапки (не папки) рекурсивно, използвайте един от тези примери:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n: NT Service\TrustedInstaller" -rec obj. setacl.exe -on d:\test -ot file -actn setowner -ownr "n: Администратори" -rec obj. setacl.exe -on d:\test -ot file -actn setowner -ownr "n: Ramesh" -rec obj
  • -рец – рекурсията е разрешена.
  • obj – Само рекурсивни и обработващи файлове.

Вариант 3: За да зададете собственост на a папка, нейните подпапки и файловете рекурсивно, използвайте един от тези примери:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n: NT Service\TrustedInstaller" -rec cont_obj. setacl.exe -на d:\test -ot файл -actn setowner -ownr "n: Администратори" -rec cont_obj. setacl.exe -on d:\test -ot file -actn setowner -ownr "n: Ramesh" -rec cont_obj
  • -рец – рекурсията е разрешена.
  • cont_obj – Рекурсивни и обработващи директории и файлове.

Примери: Задайте необходимите разрешения за файл или папка:

След като имате собствеността, можете да зададете необходимите разрешения за обект. Ето няколко примера:

За да зададете разрешенията за a единичен файл или папка, използвайте един от тези примери:

setacl.exe -on "d:\test\sample.xlsx" -ot файл -actn ace -ace "n: Администратори; p: пълен" setacl.exe -on "d:\test\sample.xlsx" -ot файл -actn ace -ace "n: Джон; p: full" setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Администратори; p: пълен" setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Джон; p: пълен"

Примери: Задайте необходимите разрешения рекурсивно:

Опция 1: За папка и подпапки (не файлове) рекурсивно, използвайте един от тези примери:

setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Администратори; p: пълен" -rec cont. setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Джон; p: пълен" -rec cont
  • -рец – рекурсията е разрешена.
  • прод – Само рекурсивни и процесни директории.

Вариант 2: За файлове в папка и подпапки (не папки) рекурсивно, използвайте един от тези примери:

setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Администратори; p: пълен" -rec obj. setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Джон; p: пълен" -rec obj
  • -рец – рекурсията е разрешена.
  • obj – Само рекурсивни и обработващи файлове.

Вариант 3: За папка, нейните подпапки и файловете рекурсивно, използвайте един от тези примери:

setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Администратори; p: пълен" -rec cont_obj. setacl.exe -on "d:\test" -ot файл -actn ace -ace "n: Джон; p: пълен" -rec cont_obj
  • -рец – рекурсията е разрешена.
  • cont_obj – Рекурсивни и обработващи директории и файлове.

Можете да разгледате официалната документация на SetACL, за да научите за пълните му възможности. Въпреки това, за да зададете собственост и разрешения на файлове и папки, takeown.exe и icacls.exe биха били повече от достатъчни за повечето потребители.


Една малка молба: Ако тази публикация ви е харесала, моля, споделете я?

Едно "малко" споделяне от вас сериозно би помогнало много за развитието на този блог. Някои страхотни предложения:
  • Закачете го!
  • Споделете го с любимия си блог + Facebook, Reddit
  • Twitter го!
Така че много ви благодаря за подкрепата, мой читателю. Това няма да отнеме повече от 10 секунди от времето ви. Бутоните за споделяне са точно отдолу. :)