Як відобразити / змінити власника файлу в Windows 7


14

Чи є спосіб відобразити власника папок і файлів з командного рядка в командному рядку Windoews 7?

Чи можете ви змінити власника папки чи файлу на якогось "довільного" користувача, який не є вашим власним іменем користувача?

У мене є кілька папок (і файлів), які, ймовірно, залишилися від програми, яку я видалив. Якщо я спробую переглянути вміст папок, мені сказали, що я не маю на це дозволу, навіть якщо я працюю як "Адміністратор".

Я можу "Взяти на себе право власності" (я припускаю, що це буде успішно, але я його ще не пробував) папок (файлів), але якщо мені потрібно повернути право власності попередньому власнику, мені потрібно знати ім'я оригіналу власника, і мені потрібно мати можливість "надати право власності" на цього користувача.

Чи можливо це зробити з командного рядка Windows (чи ні, з GUI-інструменту)?


Відповіді:


18

Ви можете взяти право власності з командного рядка за допомогою команди takeown та через GUI Windows.

Ви можете переглянути власника файлу / папки, скориставшись DIR параметром / q

Ви можете переглянути (і взяти) право власності через графічний інтерфейс Windows, клацнувши правою кнопкою миші об’єкт у Провіднику Windows (файл чи папку), вибравши Властивості та перейдіть на вкладку Безпека . На вкладці Безпека натисніть кнопку Додатково, а потім відображається діалогове вікно Розширені налаштування безпеки , перейдіть на вкладку Власник .

Після того, як ви взяли право власності на файл / папку, Windows не відстежує попереднього власника, тому немає можливості повернутися назад до попереднього власника. Крім того, немає концепції власності або дозволів на використання файлів, якщо ви працюєте з типом файлової системи, яка не підтримує такі розширені атрибути, як FAT16, FAT32, exFAT тощо.


5

Ви можете використовувати wmicдля запиту інформацію про право власності так:

wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID

Не використовуйте, dirоскільки інформація про право власності може бути відрізана, як у цьому прикладі каталогу.

Щоб отримати формат виводу, DOMAIN\USERви можете скористатися наступним пакетним сценарієм:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
REM Escpe the backslash with \\
SET ESCAPED=%~f1
SET ESCAPED=!ESCAPED:\=\\!

wmic path Win32_LogicalFileSecuritySetting where Path="!ESCAPED!" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID > "%temp%\wmi.tmp"

for /F "skip=2 delims=€" %%G in ('type %temp%\wmi.tmp') do (call     :process_wmioutput "%%G")
goto :continue
:process_wmioutput
SET UNDELIMITED=%1
SET DELIMITED=!UNDELIMITED:  =€!
FOR /F "delims=€ tokens=10,12" %%G in ("!DELIMITED!") DO (ECHO %%H\%%G)
exit /B

:continue

3

SubInACL.exeдозволяє встановити власника. Синтаксис виглядає приблизно так:

SubInACL / ім'я файлу / setowner = NewOwner

Якщо у вас його немає, ви можете завантажити його з Microsoft .

Звичайно, ви повинні мати права, щоб це зробити.


2

caclsі icalcsможе редагувати дозволи та takeownдозволяє брати право власності. AFAIK вони існують і в Windows 7. Як правило, щойно ви робите це takeown, ви дотримуєтесь його caclsчи icalcsнадаєте дозволи на об'єкт.

Модель безпеки корпорації Майкрософт не дозволяє передавати право власності комусь, а лише брати її. Таким чином адміністратор (або інший привілейований користувач) не може отримати право власності на недоступний для неї файл, отримати доступ до нього або змінити його та повернути його початковому власнику без попередження власника.

Редагувати: Кредит належить Art для опису використання takeown.


1
cacls не дозволяє жодній зміні або перегляду власника файлу. Ви могли б використовувати takeown , щоб зробити це. Як правило, щойно ви займаєтесь зйомкою, ви дотримуєтесь її з calcs або icacls, щоб надати собі дозволи на об’єкт.
Арт

Спасибі, ви абсолютно праві. Напевно, це свідчить про те, що я занадто довго був у світі Microsoft, щоб запам'ятати ці речі. Я відповідно відредагую свою відповідь.
Девід Фоерстер

2
Я знаю, що це старе, але я подумав, що додам, що ви можете встановити власника комусь іншому за допомогою icacls. icacls <шлях> / SETOWNER <ім'я> працює. Звичайно, перед тим, як зробити це, ви повинні бути власником або мати відповідні дозволи, щоб ви могли прийняти сценарій взяття права власності та повернення його за умови, що у вас є можливість брати право власності в першу чергу.
блідий кінь

Востаннє я перевіряв, Windows забороняє передачу права власності на інший обліковий запис, крім того, який здійснює передачу.
Девід Фоерстер

@DavidFoerster - Відповідно до цього: відновлення "TrustedInstaller" як власника для виконуваного файлу в папці Windows , схоже, воно буде працювати. Я ще цього не пробував.
Кевін Феган

-1

Якщо ви користуєтеся лише DIRу світі Microsoft, спробуйте цей /Qваріант.

Наприклад:

DIR *.xlsx /Q

Це дублікат відповіді Арт.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.