Linha de comando para obter permanentemente acesso à pasta

13

ATUALIZAÇÃO Enquanto eu era capaz de usar o método descrito na resposta aceita, uma vez que falhou uma segunda vez ou estava dando muitos problemas.

Pesquisando mais, encontrei o SetACL de Helge Klein, que é muito superior e faz exatamente o que é necessário.


Não consigo acessar determinadas pastas, por exemplo c:\Program Files\WindowsApps. Na linha de comando, recebo o erro " Acesso negado " e no Windows Explorer, aparece uma caixa de diálogo informando "No momento, você não tem permissão para acessar esta pasta "

insira a descrição da imagem aqui

Clicar em Continuar me dá acesso, mas eu gostaria de me conceder acesso usando a linha de comando; para que meus scripts não tenham esse problema em execução no mesmo contexto de segurança.

Encontrei esta pergunta no Microsoft Technet, mas não consegui fazê-la funcionar. Observe que já estou executando o Powershell como administrador.

PS C:\WINDOWS\system32> icacls "C:\Program Files\WindowsApps" /grant i063510:F /inheritance:e
C:\Program Files\WindowsApps: Access is denied.
Successfully processed 0 files; Failed processing 1 files
PS C:\WINDOWS\system32> icacls "C:\Program Files" /grant i063510:F /inheritance:e
C:\Program Files: Access is denied.
Successfully processed 0 files; Failed processing 1 files

Se isso for importante, estou usando o Windows 10 atualizado do Windows 8.1 .

Variável miserável
fonte

Respostas:

12

No momento, você não tem permissão para acessar esta pasta

Tente ICACLS e / ou TakeOwn com o abaixo sintaxe contra a pasta com o nome de usuário, conforme necessário.

Tente apenas os comandos ICACLS primeiro e, se isso não resolver , execute os comandos TAKEOWN e, em seguida , execute os comandos ICACLS novamente.


Comandos do ICACLS

  • Conceda acesso explícito de controle total a esta pasta a todas as subpastas e arquivos, deixando todas as permissões herdadas em vigor e continue com erro

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r <UserName>:(F) /T /C
    
  • Conceda acesso explícito de modificação a esta pasta a todas as subpastas e arquivos, deixando todas as permissões herdadas em vigor e continue com erro

    ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(M) /T /C
    
  • Altere o proprietário desta pasta e tudo abaixo das subpastas e arquivos e continue com erro

    ICACLS "<FolderPath>" /SETOWNER "<UserName>" /T /C
    

Comandos TAKEOWN

  • Execute isso como a conta à qual você deseja conceder a propriedade e ela será alterada para o proprietário da pasta e tudo abaixo das subpastas e arquivos

    TAKEOWN /F "<FolderPath>" /R /D Y
    
Pimp Juice IT
fonte
Obrigado. Eu quero evitar TAKEOWN/ SETOWNER. Estou assumindo que ele altera o proprietário e o Windows Explorer apenas atribui permissão.
Variável miserável
Você pode confirmar se apenas a ICACLS "<FolderPath>" /INHERITANCE:e /GRANT:r "<UserName>":(OI)(CI)(X,M,F) /T /Cvontade lhe dará o resultado esperado? Atualizarei minha resposta com mais detalhes, se houver.
Pimp Juice IT
Você tem que tomar posse da pasta se você quiser permissões para essa pasta específica, qualquer outra pasta, você poderia evitar a posse tomada
Ramhound
Isso funciona para mim: ICACLS "C:\Program Files\WindowsApps" /INHERITANCE:e /GRANT:r i063510:F /T /C. Obrigado pela ajuda. @ Ramhound Não consegui entender do seu comentário quando preciso ou não preciso me apropriar.
Variável miserável
@MiserableVariable Acabei de atualizar minha resposta com mais detalhes também.
Pimp Juice IT