Existe uma maneira de ver as variáveis ​​de ambiente atuais para um processo com o WMI?


5

Eu tenho um problema estranho onde algo é mudando meu caminho na minha sessão de login . O caminho permanente no registro não está mudando.

Eu queria monitorar as alterações nas variáveis ​​de ambiente do processo explorer.exe usando Register-CimIndicationEvent com o Win32_Process Objeto CIM. No entanto, não vejo nada sobre variáveis ​​de ambiente lá. Existe uma propriedade que estou perdendo? Existe outra maneira de obter o ambiente atual para outro processo e rastrear alterações nele?

Existe um Win32_Environment classe. No entanto, ele lê as marcas de registro onde as variáveis ​​de ambiente são armazenadas. Não lê as variáveis ​​de trabalho.

Respostas:


4

Eu o ambiente não é algo que está disponível facilmente através de qualquer API ou através do WMI.

O caminho mais simples para rastrear seu ambiente seria fazer verificações regulares Process Explorer para ver quando a mudança está acontecendo.

Se você pode manipular a escrita de um pouco de código C ++, aqui estão alguns recursos sobre como acessar o ambiente de outro processo. Você poderia usar isso para criar uma ferramenta para monitorar o ambiente para você:


1
Hrm, bem, eu prefiro apenas usar PInvoke ao invés de C ++, para o mesmo efeito. Vou tentar.
Justin Dearing

@JustinDearing: +1 para C #.
surfasb

O Sysinternals Process Explorer funciona muito bem para espionar as variáveis ​​de ambiente atuais.
John Dyer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.