13

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

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

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

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

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

5 ответов5

14

Вы можете вступить во владение из командной строки через команду takeown и через графический интерфейс Windows.

Вы можете просмотреть владельца файла / папки, используя DIR с параметром / q

Вы можете просмотреть (и получить) право собственности через графический интерфейс Windows, щелкнув правой кнопкой мыши объект в проводнике Windows (файл или папка), выбрав « Свойства», а затем перейдя на вкладку « Безопасность ». На вкладке « Безопасность » нажмите кнопку « Дополнительно» и в открывшемся диалоговом окне « Дополнительные параметры безопасности » перейдите на вкладку « Владелец ».

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

4

Вы можете использовать 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 /file filename /setowner=NewOwner

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

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

3

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

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

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

-1

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

Например:

DIR *.xlsx /Q

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .