
Esta é uma postagem cruzada de dba.stackexchange.com:https://dba.stackexchange.com/questions/64898/powershell-get-counter-not-returning-values-for-sql-counters
Estou tentando usar o PowerShell para obter alguns contadores SQL, mas parece que ele não retorna mais os contadores específicos do SQL. Não tenho certeza do que poderia ter mudado no meu servidor que teria causado isso.
O script é bastante simples, não tenho certeza do que estou perdendo:
## Define some variables
$serverName = "ISOMORPH" # Server we are collecting from
# Define our list of counters
$counters = @(
"\Memory\Available MBytes",
"\Memory\Pages/sec",
"\PhysicalDisk(_Total)\Avg. Disk sec/Read",
"\PhysicalDisk(_Total)\Avg. Disk sec/Write",
"\PhysicalDisk(_Total)\Current Disk Queue Length",
"\PhysicalDisk(*)\Avg. Disk sec/Read",
"\PhysicalDisk(*)\Avg. Disk sec/Write",
"\PhysicalDisk(*)\Current Disk Queue Length",
"\Process(sqlservr)\% Privileged Time",
"\Process(sqlservr)\% Processor Time",
"\Processor(*)\% Privileged Time",
"\Processor(*)\% Processor Time",
"\SQLServer:Buffer Manager\Buffer cache hit ratio",
"\SQLServer:Buffer Manager\Buffer cache hit ratio base",
"\SQLServer:Buffer Manager\Lazy writes/sec",
"\SQLServer:Buffer Manager\Page life expectancy",
"\SQLServer:Memory Manager\Memory Grants Pending" ,
"\SQLServer:SQL Statistics\Batch Requests/sec",
"\System\Context Switches/sec",
"\System\Processor Queue Length"
)
## Get our performance counter data
Get-Counter -Counter $counters -SampleInterval 1 -MaxSamples 1
O script retornará todos os contadores, mas todos os contadores SQL mostram valores 0. Não estou recebendo nenhum erro, apenas mostra todos os contadores SQL com valor 0.
Se eu abrir manualmente o Monitor de Desempenho, posso ver esses contadores e eles têm valores. Estou executando isso em um laptop Windows 7 com o SQL 2014 Developer Edition instalado.
Testes adicionais me levam a acreditar que este é um problema específico do sistema operacional. Alguém testou esse script com o Windows 8.1 executando o SQL 2012 e ele também retorna 0 para os contadores específicos do SQL.