Il peut être nécessaire dans le cas d’un script insérant des données de performance de supprimer/recréer l’objet de performance
L’exemple ci-dessous montre la suppression ré-création d’un objet MyObject et d’un compteur de performance Mycounter1.
On vérifie l’existence de l’objet de performance via wmi et l’objet .net [Diagnostics.PerformanceCounterCategory]
On supprime MyObject
On recrée l’objet et son compteur via Diagnostics.CounterCreationDataCollection et Diagnostics.CounterCreationData
On soumet la création de l’objet “global” via [Diagnostics.PerformanceCounterCategory]
Le compteur peut a partir de là être alimenté et interrogé.
if((Get–WmiObject –Query « Select * from Win32_perfformatteddata_MyObject_MyObject« ).MyCounter1 -eq 0 ` -OR (Get–WmiObject –Query « Select * from Win32_perfformatteddata_MyObject_MyObject« ).MyCounter1 -eq $null ` -AND [Diagnostics.PerformanceCounterCategory]::Exists(“MyObject”)) { write–host « Suppression et re-creation de l’objet de performance MyObject« #Suppression [Diagnostics.PerformanceCounterCategory]::Delete(“MyObject”); #Creation de l’objet de perf $script:cntrColl = New–Object Diagnostics.CounterCreationDataCollection; Write–Host « Add counter 1« ; $counter = New–Object Diagnostics.CounterCreationData; $counter.CounterName = « Mycounter1« ; $counter.CounterHelp = « Help for Counter_1« ; $counter.CounterType = [Diagnostics.PerformanceCounterType]::NumberOfItems64; $script:cntrColl.Add($counter); #Ajout du compteur Write–Host « Ajout du compteur a PerfMon« ; [Diagnostics.PerformanceCounterCategory]::Create(“MyObject”, “My counter”, $script:cntrColl); }
0 commentaires