Existe uma maneira de exibir o proprietário de pastas e arquivos na linha de comando no prompt de comando do Windows 7?
Você pode alterar o proprietário de uma pasta ou arquivo para algum usuário "arbitrário" que não seja o seu nome de usuário?
Eu tenho algumas pastas (e arquivos) que sãoprovavelmentesobra de um aplicativo que removi. Se eu tentar visualizar o conteúdo das pastas, sou informado de que não tenho permissão para fazê-lo, mesmo que esteja executando como "Administrador".
Posso "assumir a propriedade" (presumo que será bem-sucedido, mas ainda não tentei) das pastas (arquivos), mas se precisar reverter a propriedade para o proprietário anterior, preciso saber o nome de usuário do original proprietário, e preciso ser capaz de "dar propriedade" a esse usuário.
É possível fazer isso no prompt de comando do Windows (ou, se não, em uma ferramenta GUI)?
Responder1
Você pode assumir a propriedade na linha de comando por meio dotomar possecomando e através da GUI do Windows.
Você pode visualizar o proprietário de um arquivo/pasta usando oDIRcom um parâmetro /q
Você pode visualizar (e obter) a propriedade por meio da GUI do Windows clicando com o botão direito no objeto no Windows Explorer (arquivo ou pasta), selecionandoPropriedadese depois navegando até oSegurançaaba. NoSegurançaguia, clique noAvançadobotão e no exibido posteriormenteConfigurações avançadas de segurançacaixa de diálogo, navegue até oProprietárioaba.
Depois de assumir a propriedade de um arquivo/pasta, o Windows não rastreia o proprietário anterior, portanto, não há como reverter para o proprietário anterior. Além disso, não há conceito de propriedade ou permissões de arquivo se você estiver trabalhando com um tipo de sistema de arquivos que não suporta esses atributos estendidos, como FAT16, FAT32, exFAT, etc.
Responder2
Você pode usar wmic
para consultar as informações de propriedade como esta:
wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID
Não use, dir
pois as informações de propriedade podem ser cortadas, como acontece com este diretório de exemplo.
Para obter uma saída formatada, DOMAIN\USER
você pode usar o seguinte script em lote:
@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
Responder3
cacls
eicalcs
pode editar permissões etakeown
permite assumir a propriedade. AFAIK eles também existem no Windows 7. Normalmente, uma vez que você faz umtakeown
, você segue comcacls
ouicalcs
para conceder a si mesmo permissões para o objeto.
O modelo de segurança da Microsoft não permitedarpropriedade para alguém, apenas parapegaristo. Dessa forma, um administrador (ou outro usuário privilegiado) não pode apropriar-se diretamente de um arquivo inacessível a ele, acessá-lo ou modificá-lo e devolvê-lo ao proprietário original sem aviso prévio ao proprietário original.
Editar: o crédito vai paraArtepara a descrição do uso detakeown
.
Responder4
Se estiver usando apenas DIR
no mundo Microsoft, experimente a /Q
opção.
Por exemplo:
DIR *.xlsx /Q