Como obtenho permissões para excluir arquivos no Windows 7?

64

Atualizei o sistema operacional do meu laptop do Windows XP para o Windows 7. Agora, existem alguns arquivos restantes do Windows XP no computador. Se eu tentar excluí-los, recebo o seguinte erro:

Você precisa de permissão para executar esta ação.

Você precisa da permissão de S-1 -.... para fazer alterações nesta pasta.

O estranho é que estou logado com a única conta de usuário nesta máquina e tenho privilégios de administrador. Tentei desativar o UAC, mas ainda não consigo excluir os arquivos.

Como forçar a remoção desses arquivos?

lajos
fonte

Respostas:

85

É possível que, ao atualizar, o usuário antigo do XP não tenha sido convertido bem para o Windows 7 - portanto, esses arquivos pertencem a um usuário fantasma. Você pode seguir as etapas abaixo:

  1. Tome posse dos arquivos. Inicie um prompt de comando (cmd) como administrador e digite:

    takeown /f file
    takeown /f directory /r
    
  2. Dê a si mesmo todos os direitos sobre o arquivo:

    cacls file /G username:F
    cacls directory /T /G username:F
    

caclspode ser usado com curingas e passagem de diretório. Consulte também:
Segurança na linha de comandos com o comando CACLS
CACLS

Para um script do Visual Basic mais evoluído, consulte: Xcacls.vbs para modificar as permissões NTFS .

harrymc
fonte
11
O comando takeown resulta em um erro: C: \> takeown / f olddir / r ERRO: O usuário conectado atual não possui privilégios de propriedade no arquivo (ou pasta) "C: \ olddir".
Lajos
6
Você iniciou o prompt de comando clicando com o botão direito do mouse em cmd.exe e em "Executar como administrador"?
harrymc 26/10/09
11
Obrigado por apontar isso. Eu não corri como administrador. Está funcionando agora!
1013
11
Ainda recebo "ERRO: Acesso negado", mesmo depois de executar o cmd como administrador!
BT
2
@ Pacerier: Sim, chamo de "fantasma" uma conta de usuário (não interna) criada em um computador e, portanto, não existe em outro.
harrymc
29

Os argumentos da linha de comando para se apropriar devem estar nesta ordem

takeown / f <diretório> / r
/ f nome do arquivo ou padrão de nome do diretório
/ r recurse

NOTA: caclsagora está obsoleta, use icacls

icacls <diretório> / conceder <usuário>: f / t
 acesso completo
/ t recurse
Lessan Vaezi
fonte
5

No meu caso, tomar posse não era suficiente no Windows 7 para minhas circunstâncias particulares (minha instalação do Windows 7 foi feita usando o Symantec Backup Exec de outra máquina e a pasta estava sob controle de origem).

Eu tive que executar mais duas etapas:

  1. Clique com o botão direito do mouse na pasta que contém os arquivos que você deseja excluir e selecione 'Propriedades' -> 'Segurança' -> 'Avançado' -> selecione seu usuário -> 'Alterar permissão' -> Marque "Substituir todas as permissões de objeto filho por permissões herdáveis ​​de este objeto "

  2. Exclua os arquivos nas pastas manualmente da parte interna para a raiz. Exclua as pastas quando estiverem vazias, ou seja, se você tiver "folder1-> folder2" primeiro, exclua o conteúdo da pasta2, depois exclua a pasta2 etc.

Se as outras soluções não forem suficientes, tente estas etapas adicionais.

Durden81
fonte
1

Esse S-1-...é um GUID que resta da instalação anterior. Obviamente NEWSYSTEM\Administratornão faz parte do OLDSYSTEM\Administratorsgrupo.

Você precisa se apropriar da unidade, deixar as alterações se propagarem e, em seguida, conseguir excluir os arquivos.

tsilb
fonte
1

Geralmente takeowne (i)caclsfaça o trabalho.

Como alternativa, você pode usar o Unlocker para excluí-lo (provavelmente será necessário reiniciar)
ou usar o PsExec da Sysinternals para obter privilégios de usuário do SISTEMA e excluir esses arquivos (este funcionará em alguns arquivos, poderá falhar em outros).

Mas se essa pasta tiver muitos arquivos, levará muito tempo para obter takeownprivilégios (levei cerca de 20 minutos, depende da velocidade do disco rígido). Portanto, neste caso, qualquer LiveCD / DVD / USB é mais rápido, pois não requer privilégios para excluir a pasta.

Jato
fonte