Windows 7 명령 프롬프트의 명령줄에서 폴더와 파일의 소유자를 표시하는 방법이 있습니까?
폴더나 파일의 소유자를 자신의 사용자 이름이 아닌 "임의의" 사용자로 변경할 수 있습니까?
다음과 같은 일부 폴더(및 파일)가 있습니다.아마내가 제거한 앱에서 남은 것입니다. 폴더의 내용을 보려고 하면 "관리자"로 실행 중이더라도 권한이 없다는 메시지가 나타납니다.
폴더(파일)의 "소유권 가져오기"(성공할 것이라고 가정하지만 아직 시도하지 않음)를 수행할 수 있지만 소유권을 이전 소유자에게 되돌려야 하는 경우 원본의 사용자 이름을 알아야 합니다. 소유자이며 해당 사용자에게 "소유권을 부여"할 수 있어야 합니다.
Windows 명령 프롬프트에서(또는 그렇지 않은 경우 GUI 도구에서) 이 작업을 수행할 수 있습니까?
답변1
다음을 통해 명령줄에서 소유권을 가져올 수 있습니다.게시 중단명령과 Windows GUI를 통해.
다음을 사용하여 파일/폴더의 소유자를 볼 수 있습니다.디렉터리/q 매개변수 사용
Windows 탐색기에서 개체(파일 또는 폴더)를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택하여 Windows GUI를 통해 소유권을 보고 가져올 수 있습니다.속성그런 다음보안탭. 에보안탭에서고급의버튼을 누른 후 표시되는고급 보안 설정대화상자에서소유자탭.
파일/폴더의 소유권을 가져오면 Windows는 이전 소유자를 추적하지 않으므로 이전 소유자로 되돌릴 수 있는 방법이 없습니다. 또한 FAT16, FAT32, exFAT 등과 같은 확장 속성을 지원하지 않는 파일 시스템 유형으로 작업하는 경우 소유권이나 파일 권한 개념이 없습니다.
답변2
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
cacls
그리고icalcs
권한을 편집할 수 있으며takeown
소유권을 가질 수 있게 해줍니다. AFAIK Windows 7에도 존재합니다. 일반적으로 한 번 수행하면takeown
, 당신은 그것을 따라cacls
또는icalcs
자신에게 개체에 대한 권한을 부여합니다.
Microsoft의 보안 모델은 다음을 허용하지 않습니다.주다누군가에게 소유권을, 오직 누군가에게만가져가다그것. 이렇게 하면 관리자(또는 다른 권한이 있는 사용자)는 자신이 직접 액세스할 수 없는 파일의 소유권을 가져오거나 액세스하거나 수정할 수 없으며 원래 소유자에게 통지하지 않고 원래 소유자에게 돌려줄 수 없습니다.
답변4
DIR
Microsoft 세계에서만 사용하는 경우 /Q
옵션을 사용해 보세요.
예를 들어:
DIR *.xlsx /Q