Get-WmiCounter Win32_PerfFormattedData_NETFramework_NETCLRMemory Incompleto no contexto não admin

1

Portanto, criei um script para reunir contadores usando Get-CimInstance (que substitui Get-WMIObject ) e executá-lo como um serviço por meio de srvany.exe .

Eu recebo um problema em que, para as classes .Net CLR, alguns processos não estão reunidos, especialmente um que desejo monitorar: w3wp . Ao executar o aplicativo em um console Powershell elevado, o comando retorna todos os processos que dependem do .Net, enquanto, se eu o executar em um console PowerShell padrão, apenas os processos locais do .Net serão reunidos.

Eu preciso configurar as permissões apropriadas para esse serviço para que ele reúna todas as métricas de todos os processos. Eu tentei executar o processo como administrador, uma conta de administrador de domínio, sem sucesso. Eu tentei fornecer explicitamente todas as permissões em root\cimv2 para o administrador no console do wmimgmt.msc WMI Admin sem resolver o problema.

O contexto de execução padrão para os serviços é SYSTEM, que também é o contexto de execução padrão do IIS.

Não sei quanto às permissões que preciso dar e onde permitir que esse serviço reúna todos os dados. Eu sinto que começar como um serviço de login como a conta de administrador deve ser suficiente, mas aparentemente não.

Exemplo do problema em

PS C:\Users\user> gcim Win32_PerfFormattedData_NETFramework_NETCLRSecurity | select-object Name

Name
----
_Global_
powershell
SCNotification

E agora, em um console do powershell Executar como administrador:

PS C:\WINDOWS\system32> gcim Win32_PerfFormattedData_NETFramework_NETCLRSecurity | select-object Name

Name
----
_Global_
powershell
w3wp
w3wp#1
w3wp#2
powershell#1
SCNotification
SCNotification#1

Usar a alternativa Get-Counter em um console não administrativo é ainda pior:

PS C:\Users\user> Get-Counter -Counter "\.NET CLR Memory(*)\*" -SampleInterval 1 -MaxSamples 1
Get-Counter : The specified object was not found on the computer.
At line:1 char:1
+ Get-Counter -Counter "\.NET CLR Memory(*)\*" -SampleInterval 1 -MaxSamples 1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidResult: (:) [Get-Counter], Exception
    + FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand

Considerando que a informação correta é exibida em um console administrativo.

    
por Thomas 15.04.2016 / 22:36

0 respostas