É um pouco embaraçoso mudar minha opinião sobre isso tão completamente, mas seu comentário subsequente à minha primeira tentativa faz com que a teoria das permissões pareça muito mais convincente de repente.
O Windows atualmente possui permissões que são designadas de maneira diferente dependendo se o processo de solicitação é remoto ou local, e isso fede ao tipo de comportamento que vi quando um objeto é ACL para que o INTERACTIVE seja permitido mas REMOTE não é. Quando você faz logon via RDP, seu token de acesso incluirá o SID INTERATIVO; Quando você executa uma consulta remota (que usa RPC, que geralmente vem em pipes nomeados ou TCP / IP), seu token de acesso não inclui INTERACTIVE mas em vez disso REMOTE. Além disso, tenho visto casos em que duas tentativas de acesso ou sessões de logon diferentes acabam de alguma forma "reunindo" seus direitos de acesso combinados, portanto, seu caso de "quando eu estou conectado, a consulta remota do WMI também é bem-sucedida" faz sentido. Eu teria que reler o Windows Internals para entender se as sessões, WinStations ou tokens de acesso estão sendo compartilhados, mas certamente o que você relata é consistente com algumas experiências que tive.
Não há uma boa razão para o atributo CommandLine ser ACL diferente do atributo ProcessID, mas parece que é isso que está acontecendo. Gostaria de saber se isso era algo que você poderia alterar por meio de configurações profundamente incorporadas ou se ele é simplesmente codificado no sistema operacional Windows.
Voltei pelas etapas de alteração de permissões descritas na pergunta original e havia dois lugares em que a diferença local / remota parecia aparecer:
- (2) Serviços de componentes > COM Security > Permissões de inicialização e ativação - INTERACTIVE é concedido permissões completas
- (3) Serviços de componentes > Configuração do DCOM > Gerenciamento e Instrumentação do Windows > Segurança > Permissões de inicialização e ativação - as opções "Ativar" e "Ativação" fornecem permissões que diferem se você é local ou remoto.
Eu focalizaria suas investigações nessas áreas e em qualquer outro lugar você perceberia essas permissões diferenciais locais / remotas (INTERATIVAS / REMOTAS). Embora nenhum deles aponte definitivamente para o atributo CommandLine que você está seguindo, é quase certo em minha mente (sim, ainda mais certo que a minha resposta anterior) que diferenças como essas explicarão o comportamento que você está vendo e fechará O intervalo entre "remoto" e "local" permitiria os resultados que você procura. [Vamos apenas esperar que a Microsoft não codifique coisas para que - não importa o que você configure - você não possa expor o atributo CommandLine para consultas remotas. Não seria a primeira vez que um design hard-coded de visão curta frustrava nosso uso do sistema operacional ...]