Публікується в рамках розгрібання чернеток. Тим хто не займається адмініструванням Windows буде зовсім не цікаво, проходьте далі…
Одного разу переді мною поставили задачу перевірити можливість отримання певних метрик загальною кількістю біля 200 штук для двох видів користувачів для трьох версій операційної системи. Я сміливо взявся за роботу, розваживши що якщо написати скрипт який в одному циклі проходиться по метриках, а в іншому – по хостах та користувачах, то це все можна зробити швидко. Але є одне але. :) Точність оцінювання необхідного часу сильно падає якщо ти чогось не знаєш, і ще більше падає якщо ти не знаєш що ти чогось не знаєш.
Наприклад я довго не міг зрозуміти чому не працює:
PS C:\Users\Administrator\Documents> Get-Counter '\Disk Read Bytes/sec'
Get-Counter : The specified counter path could not be interpreted.
+ CategoryInfo : InvalidResult: (:) [Get-Counter], Exception
+ FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand
А виявилось що performance counter повинен мати формат:
[\\<ComputerName>]\<CounterSet>[(<Instance>)]\<CounterName>
, де необов’язковим є лише ComputerName та іноді Instance, і в мене воно просить уточнити якого диска читання я хочу отримати. Наприклад:
PS C:\Users\Administrator\Documents> Get-Counter '\LogicalDisk(*)\Disk Read Bytes/sec'
Timestamp CounterSamples
--------- --------------
29.04.2014 20:01:15 \\win-dl46o26fd8h\logicaldisk(harddiskvolume1)\disk read bytes/sec :
0
\\win-dl46o26fd8h\logicaldisk(c:)\disk read bytes/sec :
8209,39607393418
\\win-dl46o26fd8h\logicaldisk(_total)\disk read bytes/sec :
8209,39607393418
І кількість таких проблем виправляється лише постійною освітою, тому нею й займемось.
Get-Counter
Основне варте уваги джерело інформації яке я зміг викопати – Microsoft Technet на жаль. Ну але там теж щось пишуть, хоча й занудно.
Read more »





