Alguns dos processos exibidos no Gerenciador de Tarefas são, na verdade, serviços que você pode ver no nó Serviços do console de Gerenciamento do Computador. Os serviços podem ter uma ACL anexada a eles da mesma maneira que um arquivo / pasta. Se o serviço estiver sendo executado como a conta LocalSystem e tiver uma ACL que impeça o desligamento (provavelmente com um programa AV), isso explicaria por que você está recebendo um erro de permissão negada ao tentar matá-lo.
Definir permissões em serviços é uma dor. Não há opções na GUI para modificá-las. A única maneira de fazer isso é através da linha de comando com o sc
comando.
Infelizmente, o sc
comando é feio. Por exemplo, eu emiti este comando para o serviço BITS em minha própria máquina:
sc sdshow bits
... e obteve a seguinte saída:
D:(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)
S:(AU;SAFA;WDWO;;;BA)
Essa é a SDDL (Security Descriptor Definition Language) da Microsoft para você.
Cada entrada de controle de acesso (ACE) na lista está contida entre parênteses ()
e é chamada de seqüência de caracteres ACE .
Vou parar por aí, porque seguir esse link e tentar entender uma string SDDL fará sua cabeça girar.
Entretanto, todas as permissões (mesmo as dos arquivos) são representadas por seqüências SDDL. É que os serviços não oferecem um front-end da GUI para trabalhar com eles (nem mesmo um utilitário de linha de comando sensatocacls
).