![Powershell Get-Counter не возвращает значения для счетчиков SQL](https://rvso.com/image/632754/Powershell%20Get-Counter%20%D0%BD%D0%B5%20%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%89%D0%B0%D0%B5%D1%82%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2%20SQL.png)
Это кросс-пост с dba.stackexchange.com:https://dba.stackexchange.com/questions/64898/powershell-get-counter-not-returning-values-for-sql-counters
Я пытаюсь использовать PowerShell, чтобы получить некоторые счетчики SQL, но он, похоже, больше не возвращает счетчики, специфичные для SQL. Я не уверен, что могло измениться на моем сервере, что могло вызвать это.
Сценарий довольно прост, не знаю, что я упускаю:
## 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
Скрипт вернет все счетчики, но все счетчики SQL показывают значения 0. Я не получаю никаких ошибок, он просто показывает, что все счетчики SQL имеют значение 0.
Если я вручную открою Performance Monitor, я увижу эти счетчики и у них будут значения. Я запускаю это на ноутбуке с Windows 7 с установленным SQL 2014 Developer Edition.
Дальнейшее тестирование приводит меня к мысли, что это проблема, связанная с ОС. Кто-то еще тестировал этот скрипт с Windows 8.1, работающей под управлением SQL 2012, и в этом случае он также возвращает 0 для счетчиков, специфичных для SQL.