Создание PerformanceCounterCategory в Powershell - PullRequest
0 голосов
/ 01 сентября 2010

Я пытаюсь запустить следующий скрипт в powershell:

$counters = @()

$counters = $counters + [Diagnostics.CounterCreationData]::("Hit counter", "Number of total hits", [Diagnostics.PerformanceCounterType]::NumberOfItem32);
$counters = $counters + [Diagnostics.CounterCreationData]::("Hits per second", "Number of average hits per second", [Diagnostics.PerformanceCounterType]::RateOfCountsPerSecond32);

$counterCollection = [Diagnostics.CounterCreationDataCollection]::($counters);

[Diagnostics.PerformanceCounterCategory]::Create("HitCounters","Some help text",[Diagnostics.PerformanceCounterCategoryType]::SingleInstance, $counterCollection);

Когда я выполняю это, я получаю сообщение о том, что $ counterCollection равен нулю. Боюсь, я еще недостаточно знаком с PowerShell, чтобы разобраться, в чем дело, - это массив, из которого я собираю коллекцию? Или сам вызов создания CounterCreationDataCollection?

Любые указатели приветствуются:)

1 Ответ

0 голосов
/ 01 сентября 2010

Вы смешиваете в статическом синтаксисе аксессора :: с вызовом конструктора. Попробуйте вместо этого:

$ccdTypeName = 'System.Diagnostics.CounterCreationDate'
$ccdcTypeName = 'System.Diagnostics.CounterCreationDataCollection'
$counters = @()
$counters += new-object $ccdTypeName "Hit counter","..."
$counters += new-object $ccdTypeName "Hits per sec","..."
$counterCollection = new-object $ccdcTypeName $counters
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...