Как отобразить / изменить владельца файла в Windows 7

14

Есть ли способ отобразить владельца папок и файлов из командной строки в командной строке Windoews 7?

Можете ли вы изменить владельца папки или файла на «произвольного» пользователя, который не является вашим собственным именем пользователя?

У меня есть несколько папок (и файлов), которые, вероятно, остались из приложения, которое я удалил. Если я пытаюсь просмотреть содержимое папок, мне сообщают, что у меня нет разрешения на это, даже если я работаю администратором.

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

Возможно ли это сделать из командной строки Windows (или, если нет, из GUI-Tool)?

Кевин Феган
источник
См. Здесь решение, использующее только cmd.exe: получить информацию о владельце из командной строки с помощью wmic
schletti2000

Ответы:

17

Вы можете вступить во владение из командной строки с помощью команды takeown и через графический интерфейс 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
schletti2000
источник
3

SubInACL.exeпозволяет установить владельца. Синтаксис выглядит примерно так:

SubInACL / имя файла / setowner = NewOwner

Если у вас его нет, вы можете скачать его у Microsoft .

Конечно, вы должны иметь права, чтобы быть в состоянии сделать это.

Itsme2003
источник
2

caclsи icalcsможет редактировать разрешения и takeownпозволяет вступать во владение. AFAIK они существуют и в Windows 7. Как правило, после того, как вы это сделаете takeown, вы добавите caclsили icalcsпредоставите себе права доступа к объекту.

Модель безопасности Microsoft не позволяет передавать права собственности кому-либо, а только брать ее. Таким образом, администратор (или другой привилегированный пользователь) не может вступить во владение файлом, недоступным для нее напрямую, получить к нему доступ или изменить его и вернуть его первоначальному владельцу без уведомления первоначального владельца.

Изменить: Кредит переходит к искусству для описания использования takeown.

Дэвид Фёрстер
источник
1
cacls не позволяет изменять или просматривать владельца файла. Вы бы использовали takeown, чтобы сделать это. Как правило, после того, как вы сделаете захват, вы выполняете его с помощью calcs или icacls, чтобы предоставить себе разрешения для объекта.
Art
Спасибо, ты совершенно прав. Я предполагаю, что это показывает, что я слишком долго был вне мира Microsoft, чтобы помнить эти вещи. Я отредактирую свой ответ соответственно.
Дэвид Фёрстер
2
Я знаю, что это старое, но я подумал, что могу добавить, что вы можете назначить владельца кому-то еще, используя icacls. icacls <путь> / SETOWNER <имя> работает. Конечно, вы должны быть владельцем или иметь соответствующие разрешения, прежде чем вы сможете это сделать, чтобы вы могли реализовать сценарий получения права собственности и возврата его при условии, что у вас есть возможность стать владельцем в первую очередь.
бледная лошадка
В прошлый раз, когда я проверял, Windows запрещает передачу права собственности на другую учетную запись, кроме той, которая выполняет передачу.
Дэвид Фёрстер
@DavidFoerster - в соответствии с этим: Восстановление TrustedInstaller в качестве владельца исполняемого файла в папке Windows , похоже, он будет работать. Я сам еще не пробовал.
Кевин Феган
-1

Если вы используете только DIRв мире Microsoft, попробуйте /Qвариант.

Например:

DIR *.xlsx /Q
user3029478
источник
Это дубликат ответа Арт.
fixer1234