A partir do Vista, cacls
está obsoleta. Aqui estão as duas primeiras linhas de ajuda:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Você deve usar em seu icacls
lugar. É assim que você concede a John controle total sobre a D:\test
pasta e todas as suas subpastas:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
De acordo com a documentação da MS:
F
= Controle total
CI
= Herança de contêiner - esse sinalizador indica que os contêineres subordinados herdarão essa ACE.
OI
= Herança de objeto - Este sinalizador indica que os arquivos subordinados herdarão o ACE.
/T
= Aplicar recursivamente aos arquivos e subpastas existentes. ( OI
e se CI
aplica apenas a novos arquivos e subpastas). Crédito: comentário de @AlexSpence.
Para documentação completa, você pode executar " icacls
" sem argumentos ou consulte a documentação da Microsoft aqui e aqui
C:\>icacls "D:\test" /grant "John:(OI)(CI)F" /T
Você também pode usar o ICACLS.
Para conceder controle total ao grupo Usuários a uma pasta:
Para conceder permissão de modificação aos usuários do IIS para
C:\MyFolder
(se você precisar que o seu IIS tenha a capacidade de arquivos R / W em uma pasta específica):Se você faz o ICACLS /? você poderá ver todas as opções disponíveis.
fonte
cacls
se foi, é ainda mais motivo para usar icacls ./grant Users:(OI)(CI)F
usadoUsers
por outra coisa ou NÃO? De acordo comicacls "C:\MyFolder" /grant Users:F
Abra um prompt de comando e execute este comando:
F
dá acesso total./q /c /t
aplica as permissões às subpastas.Nota: Às vezes, "Executar como administrador" ajudará.
fonte
Use o
cacls
comando Veja informações aqui .fonte
cacls
é relevante; ainda está disponível emWindows 10
; A Microsoft também se tornaria obsoletacmd.exe
em favor do Powershell.cmd.exe
não é preterido e provavelmente não será, portanto, esse não é um ponto a favor deicacls
todo, pelo contrário.cacls.exe
. Também não mencionei quecmd.exe
já está obsoleto. Acho que as pessoas devem estar cientes de sua disponibilidade em versões superiores, mesmo apenas para compatibilidade com versões anteriores ou qualquer outro motivo.Eu tento da maneira abaixo e funciona para mim:
1. abra
cmd.exe
2.
takeown /R /F *.*
3.
icacls * /T /grant [username]:(D)
4.
del *.* /S /Q
Para que os arquivos possam se tornar meu próprio acesso e atribua a "Excluir" e eu possa excluir os arquivos e pastas.
fonte
Permissões corrompidas: recuperando o acesso a uma pasta e seus subobjetos
Embora a maioria das respostas postadas em resposta à pergunta tenha algum mérito, IMHO nenhuma delas fornece uma solução completa. A seguinte (pode ser) uma solução perfeita para o Windows 7 se você estiver bloqueado em uma pasta por configurações de permissão corrompidas:
No Windows 10, o usuário / SID deve ser especificado após a
/remove:d
opção:.
Notas :
O comando é aplicado ao diretório especificado.
A especificação do usuário "Todos" define a permissão mais ampla possível, pois inclui todos os usuários possíveis.
A opção "/ remove: d" exclui as configurações DENY explícitas que possam existir, pois elas substituem as configurações ALLOW explícitas: uma preliminar necessária para criar uma nova configuração ALLOW. Isso é apenas uma precaução, pois muitas vezes não há configuração DENY presente, mas é melhor prevenir do que remediar.
A opção "/ grant" cria uma nova configuração de ALLOW, uma permissão explícita que substitui (": r") toda e qualquer configuração explícita de ALLOW que possa existir.
O parâmetro "F" (ou seja, a permissão criada) torna isso uma concessão do controle COMPLETO.
O parâmetro "/ T" adiciona recursão, aplicando essas alterações a todos os subobjetos atuais no diretório especificado (por exemplo, arquivos e subpastas), bem como à própria pasta.
Os parâmetros "(OI)" e "(CI)" também adicionam recursão, aplicando essas alterações aos subobjetos criados posteriormente.
.
ADENDA (10/02/2019) -
A linha de comando do Windows 10 acima foi gentilmente sugerida para mim hoje, então aqui está. Eu não tenho o Windows 10 para testá-lo, mas tente se tiver (e faça um comentário abaixo).
A alteração refere-se apenas à remoção da configuração DENY como primeira etapa. Pode não haver nenhuma configuração DENY presente, portanto essa opção pode não fazer diferença. No meu entender, no Windows 7, você não precisa especificar um usuário após / remover: d, mas posso estar errado sobre isso!
.
ADENDA (21/11 2019) -
O usuário astark recomenda substituir Todos pelo termo * S-1-1-0, para que o comando seja independente do idioma. Eu só tenho uma instalação em inglês do Windows, então não posso testar esta proposta, mas parece razoável.
fonte
Invalid parameter "/remove:d"
Lutei com isso por um tempo e só combinando as respostas neste tópico funcionou para mim (no Windows 10):
1. Abra cmd ou PowerShell e vá para a pasta com arquivos
2. takeown / R / F .
3. icacls * / T / grant dan: F
Boa sorte!
fonte
Apenas no caso de haver mais alguém que tropeça nesta página, se você deseja agrupar várias permissões no único comando, usei o seguinte:
Observe a cadeia csv para as várias permissões.
fonte
Com um script vba do Excel para provisionar e criar contas. Eu estava precisando conceder permissões de direitos totais para a pasta e subpastas criadas pela ferramenta usando a conta 'x' de nossos administradores para nosso novo usuário.
cacls tinha algo parecido com isto: cacls \ FileServer \ Users \ Nome de usuário / e / g Domínio \ Nome de usuário: C
Eu precisava migrar esse código para o Windows 7 e além. Minha solução acabou sendo:
icacls \ FileServer \ Users \ Nome de usuário / concessão: r Domínio \ Nome de usuário: (OI) (CI) F / t
/ grant: r - concede direitos de acesso de usuário especificados. As permissões substituem as permissões explícitas concedidas anteriormente. Sem: r, as permissões são adicionadas a quaisquer permissões explícitas concedidas anteriormente
(OI) (CI) - esta pasta, subpastas e arquivos.
F - Acesso total
/ t - Atravessa todas as subpastas para corresponder aos arquivos / diretórios.
O que isso me deu foi uma pasta neste servidor em que o usuário só podia ver essa pasta e criou subpastas, que eles podiam ler e gravar arquivos. Além de criar novas pastas.
fonte
O XCACLS.VBS é um script muito poderoso que altera / edita as informações da ACL. A ajuda c: \ windows \ system32 \ cscript.exe xcacls.vbs retorna todas as opções e opções.
Você pode obter distribuição oficial na Página de Suporte da Microsoft
fonte
XCACLS.VBS
pode ser encontrado?A criação de pastas em massa e a permissão de concessão funcionam comigo, usando o script do PowerShell abaixo.
Nota: Você deve criar o mesmo nome de usuário de domínio no arquivo csv, caso contrário, obterá problemas de permissão
fonte
fonte
excelente ponto Călin Darie
Eu tinha muitos scripts para usar cacls. Movo-os para icacls, como sempre. Não consegui encontrar um script para alterar o exemplo de volumes de montagem raiz: d: \ datafolder. Finalmente criei o script abaixo, que monta o volume como uma unidade temporária e aplica-se em segundos. depois desmonta-o. É a única maneira que descobri que você pode atualizar a segurança de montagem raiz.
1 obtém o GUID de montagem da pasta em um arquivo temporário e, em seguida, lê o GUID para montar o volume como uma unidade temporária X: aplica seg. E registra as alterações e desmonta o Volume apenas da unidade X: para que a pasta montada não seja alterada ou interrompida. então o segundo aplicado.
Aqui está um exemplo do meu script:
fonte
Sou Administrador e algum script colocou a permissão "Negar" em meu nome em todos os arquivos e subpastas em um diretório. A execução do
icacls "D:\test" /grant John:(OI)(CI)F /T
comando não funcionou, porque parecia não remover o "Negar" diretamente do meu nome nesta lista.A única coisa que funcionou para mim é redefinir todas as permissões com o
icacls "D:\test" /reset /T
comandofonte
no windows 10 funcionando sem "c:>" e ">"
Por exemplo:
(também corrige os erros 2502 e 2503)
fonte
Isto é o que funcionou para mim:
Abra manualmente a pasta para a qual o acesso foi negado.
Selecione o arquivo executável / aplicativo nessa pasta.
Clique com o botão direito do mouse e vá para Properties->Compatibility
Agora veja o Privilege Levele verifiqueRun As Administrator
Clique em Change Settings for all users.
O problema está resolvido agora.
fonte