Como exibir / alterar o proprietário de um arquivo no Windows 7

14

Existe uma maneira de exibir o proprietário de pastas e arquivos na linha de comando no prompt de comando do Windoews 7?

Você pode alterar o proprietário de uma pasta ou arquivo para algum usuário "arbitrário" que não seja seu nome de usuário?

Tenho algumas pastas (e arquivos) que provavelmente sobraram de um aplicativo que removi. Se eu tentar visualizar o conteúdo das pastas, sou informado que não tenho permissão para fazê-lo, mesmo se estiver executando como um "Administrador".

Posso "Tomar posse" (presumo que isso será bem-sucedido, mas ainda não 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 poder "dar propriedade" a esse usuário.

É possível fazer isso no prompt de comando do Windows (ou, se não, em uma GUI-Tool)?

Kevin Fegan
fonte
Veja aqui uma solução puramente usando cmd.exe: Obter informações de propriedade da linha de comando usando wmic
schletti2000

Respostas:

17

Você pode se apropriar da linha de comando pelo comando takeown e pela GUI do Windows.

Você pode visualizar o proprietário de um arquivo / pasta usando o DIR com um parâmetro / q

Você pode visualizar (e assumir) a propriedade por meio da GUI do Windows, clicando com o botão direito do mouse no objeto no Windows Explorer (arquivo ou pasta), selecionando Propriedades e navegando até a guia Segurança . Na guia Segurança , clique no botão Avançado e, na caixa de diálogo Configurações avançadas de segurança exibida posteriormente , navegue até a guia Proprietário .

Depois de se apropriar 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ão 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.

Arte
fonte
5

Você pode usar wmicpara 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, dirpois as informações de propriedade podem ser cortadas, como neste diretório de exemplo.

Para obter uma saída formatada, DOMAIN\USERvocê 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
schletti2000
fonte
3

SubInACL.exepermite que você defina o proprietário. A sintaxe se parece com:

SubInACL / file nome do arquivo / setowner = NewOwner

Caso não possua, você pode baixá-lo da Microsoft .

Claro que você precisa ter os direitos para poder fazer isso.

Itsme2003
fonte
2

caclse icalcspode editar permissões e takeownpermite se apropriar. AFAIK eles existem no Windows 7 também. Normalmente, depois de fazer um takeown, você o segue com caclsou icalcspara se conceder permissões ao objeto.

Modelo de segurança da Microsoft não permite dar posse a alguém, só para tirar isso. Dessa forma, um administrador (ou usuário privilegiado) não pode se apropriar de um arquivo inacessível diretamente a ela, acessá-lo ou modificá-lo e devolvê-lo ao proprietário original sem aviso prévio.

Edit: Credit vai para Art para a descrição do uso de takeown.

David Foerster
fonte
1
O cacls não permite alterar ou exibir o proprietário de um arquivo. Você usaria o takeown para fazer isso. Normalmente, depois de fazer uma retirada, você segue com calcs ou icacls para conceder a si próprio permissões para o objeto.
Art
Obrigado, você está totalmente certo. Eu acho que isso mostra que estou fora do mundo da Microsoft há muito tempo para lembrar dessas coisas. Vou editar minha resposta de acordo.
David Foerster
2
Sei que isso é antigo, mas pensei em acrescentar que você pode definir o proprietário para outra pessoa usando icacls. icacls <caminho> / SETOWNER <name> funciona. É claro que você precisa ser o proprietário ou ter as permissões apropriadas antes de fazer isso, para poder encenar o cenário de se apropriar e devolvê-lo, desde que tenha a capacidade de se apropriar.
Palehorse
Na última vez que verifiquei, o Windows proíbe a transferência de propriedade para outra conta, exceto para a que realiza a transferência.
David Foerster
@DavidFoerster - De acordo com isso: Restaurando 'TrustedInstaller' como proprietário do executável na pasta Windows , parece que ele funcionará. Eu ainda não tentei.
Kevin Fegan
-1

Se estiver usando apenas DIRno mundo da Microsoft, tente a /Qopção

Por exemplo:

DIR *.xlsx /Q
user3029478
fonte
Esta é uma duplicata da resposta de Art.
precisa saber é o seguinte