
Tenho alguns contadores de desempenho que gravam em arquivos CSV no local padrão ( %SYSTEMDRIVE%\Perflogs
). Os diretórios criados são "especiais". Quando tento navegar por eles, o explorador reclama
Posso clicar em "Continuar" e não tenho mais problemas para navegar nos diretórios com o Explorer.
No entanto, se eu tentar acessar os diretórios por meio de um shell cmd não elevado, recebo ACCESS_DENIED. Com um cmd elevado, posso acessar os arquivos de dados sem problemas.
icacls relata isso sobre o diretório (antes de navegar nele)
MEMTEST2_20190724-000004 NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
BUILTIN\Performance Log Users:(OI)(R)
O usuário que estou executando já está no Performance Log Users
.
- O que realmente está acontecendo quando eu "obtenho acesso permanente a esta pasta?"
- Como esse diretório é realmente protegido contra acesso não elevado?
- Existe uma boa maneira de "desproteger" o diretório sem reconfigurar o contador de desempenho para gravar em um local diferente?
- Eu leioesta resposta, que descreve como criar um ouvinte de eventos para desproteger o diretório quando o contador for iniciado. Não há outra maneira?
Responder1
Este comportamento é causado pelo Controle de Conta de Usuário: os processos que você executa (incluindo Windows Explorers e CMD) não têm direitos administrativos, mesmo se você pertencer ao grupo Administradores, você deve solicitá-los explicitamente usando o comando "Executar como Administrador" ; no entanto, isso não pode ser feito para o Explorer em si, porque ele está sempre em execução, portanto você não pode executar outra instância elevada dele (a menos que você o mate primeiro, perdendo assim seu shell; isso pode ser feito, mas requer desajeitado soluções alternativas).
No entanto, o próprio Windows Explorer sabe como funciona o UAC; então, quando você tenta acessar uma pasta à qual apenas os administradores têm acesso e detecta que vocêsãoum membro dos Administradores, mas não está sendo executado em modo elevado, tenta ser útil e pergunta se você deseja "obter acesso permanente" à pasta; se você clicarContinue
uma concessão ACE explícita para sua conta de usuário é adicionada à pasta: permite que você acesse diretamente a pasta em vez de depender de seus direitos administrativos, ignorando assim o UAC.
O que acho intrigante é que esse é um comportamento padrão (embora discutível) para o UAC e o Explorer, masisso só acontece quando direitos administrativos estão envolvidos; se você tiver acesso a uma pasta porque pertence a um grupo normal (não administradores) que pode acessá-la, o UAC não deverá se envolver.
A menos que o Windows trate o grupo "Usuários do Log de Desempenho" da mesma forma que os grupos "Administradores" no que diz respeito ao UAC, exigindo assim elevação para realmente usar sua associação; se for esse o caso, é novidade para mim e não consigo encontrá-lo referenciado em lugar nenhum.