Powershell Get-Counter не возвращает значения для счетчиков SQL

Powershell Get-Counter не возвращает значения для счетчиков SQL

Это кросс-пост с 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.

Связанный контент