PerformanceCounterCategory.GetCategories Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft eine Liste der auf einem Computer registrierten Leistungsindikatorkategorien ab.
Überlädt
GetCategories() |
Ruft eine Liste der auf dem lokalen Computer registrierten Leistungsindikatorkategorien ab. |
GetCategories(String) |
Ruft eine Liste der auf dem angegebenen Computer registrierten Leistungsindikatorkategorien ab. |
GetCategories()
Ruft eine Liste der auf dem lokalen Computer registrierten Leistungsindikatorkategorien ab.
public:
static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories();
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories ();
static member GetCategories : unit -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories () As PerformanceCounterCategory()
Gibt zurück
Ein Array von PerformanceCounterCategory-Objekten, das die auf dem lokalen Computer registrierten Kategorien angibt.
Ausnahmen
Fehler beim Aufruf einer zugrunde liegenden System-API.
Ohne Administratorrechte ausgeführter Code hat versucht, einen Leistungsindikator zu lesen.
Beispiele
Im folgenden Codebeispiel wird die GetCategories -Methode verwendet, um ein Array von PerformanceCounterCategory -Objekten vom lokalen Computer oder einem angegebenen Computer zurückzugeben. Das Array wird in ein Array von Kategorienamen konvertiert PerformanceCounterCategory , das sortiert und für den Benutzer angezeigt wird. Die GetCategories Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wurde.
public:
static void Main(array<String^>^ args)
{
String^ machineName = "";
array<PerformanceCounterCategory^>^ categories;
// Copy the machine name argument into the local variable.
try
{
machineName = args[1]=="."? "": args[1];
}
catch (...)
{
}
// Generate a list of categories registered on the specified computer.
try
{
if (machineName->Length > 0)
{
categories = PerformanceCounterCategory::GetCategories(machineName);
}
else
{
categories = PerformanceCounterCategory::GetCategories();
}
}
catch(Exception^ ex)
{
Console::WriteLine("Unable to get categories on " +
(machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
Console::WriteLine(ex->Message);
return;
}
Console::WriteLine("These categories are registered on " +
(machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
// Create and sort an array of category names.
array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
int objX;
for (objX = 0; objX < categories->Length; objX++)
{
categoryNames[objX] = categories[objX]->CategoryName;
}
Array::Sort(categoryNames);
for (objX = 0; objX < categories->Length; objX++)
{
Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
}
}
public static void Main(string[] args)
{
string machineName = "";
PerformanceCounterCategory[] categories;
// Copy the machine name argument into the local variable.
try
{
machineName = args[0]=="."? "": args[0];
}
catch
{
}
// Generate a list of categories registered on the specified computer.
try
{
if (machineName.Length > 0)
{
categories = PerformanceCounterCategory.GetCategories(machineName);
}
else
{
categories = PerformanceCounterCategory.GetCategories();
}
}
catch(Exception ex)
{
Console.WriteLine("Unable to get categories on " +
(machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
Console.WriteLine(ex.Message);
return;
}
Console.WriteLine("These categories are registered on " +
(machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
// Create and sort an array of category names.
string[] categoryNames = new string[categories.Length];
int objX;
for(objX = 0; objX < categories.Length; objX++)
{
categoryNames[objX] = categories[objX].CategoryName;
}
Array.Sort(categoryNames);
for(objX = 0; objX < categories.Length; objX++)
{
Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
}
}
Sub Main(ByVal args() As String)
Dim machineName As String = ""
Dim categories() As PerformanceCounterCategory
' Copy the machine name argument into the local variable.
Try
machineName = IIf(args(0) = ".", "", args(0))
Catch ex As Exception
End Try
' Generate a list of categories registered on the specified computer.
Try
If machineName.Length > 0 Then
categories = _
PerformanceCounterCategory.GetCategories(machineName)
Else
categories = PerformanceCounterCategory.GetCategories()
End If
Catch ex As Exception
Console.WriteLine("Unable to get categories on " & _
IIf(machineName.Length > 0, "computer ""{0}"":", _
"this computer:"), machineName)
Console.WriteLine(ex.Message)
Return
End Try
Console.WriteLine("These categories are registered on " & _
IIf(machineName.Length > 0, _
"computer ""{0}"":", "this computer:"), machineName)
' Create and sort an array of category names.
Dim categoryNames(categories.Length - 1) As String
Dim objX As Integer
For objX = 0 To categories.Length - 1
Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
categoryNames(objX) = categories(objX).CategoryName
Next objX
Array.Sort(categoryNames)
For objX = 0 To categories.Length - 1
Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
Next objX
End Sub
Hinweise
Hinweis
Um Leistungsindikatoren aus einer nicht interaktiven Anmeldesitzung in Windows Vista und höher, Windows XP Professional x64 Edition oder Windows Server 2003 zu lesen, müssen Sie entweder Mitglied der Gruppe Leistungsmonitor Benutzer sein oder über Administratorrechte verfügen.
Um zu vermeiden, dass Sie Ihre Berechtigungen für den Zugriff auf Leistungsindikatoren in Windows Vista und höher erhöhen müssen, fügen Sie sich der Gruppe Leistungsmonitor Benutzer hinzu.
Unter Windows Vista (und höher) werden die Berechtigungen eines Benutzers von der Benutzerkontensteuerung (User Account Control, UAC) bestimmt. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.
Weitere Informationen
Gilt für:
GetCategories(String)
Ruft eine Liste der auf dem angegebenen Computer registrierten Leistungsindikatorkategorien ab.
public:
static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories(System::String ^ machineName);
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories (string machineName);
static member GetCategories : string -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories (machineName As String) As PerformanceCounterCategory()
Parameter
- machineName
- String
Der zu durchsuchende Computer.
Gibt zurück
Ein Array von PerformanceCounterCategory-Objekten, das die auf dem angegebenen Computer registrierten Kategorien angibt.
Ausnahmen
Der machineName
-Parameter ist ungültig.
Fehler beim Aufruf einer zugrunde liegenden System-API.
Ohne Administratorrechte ausgeführter Code hat versucht, einen Leistungsindikator zu lesen.
Beispiele
Im folgenden Codebeispiel wird die GetCategories -Methode verwendet, um ein Array von PerformanceCounterCategory -Objekten vom lokalen Computer oder einem angegebenen Computer zurückzugeben. Das Array wird in ein Array von Kategorienamen konvertiert PerformanceCounterCategory , das sortiert und für den Benutzer angezeigt wird. Die GetCategories Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wurde.
public:
static void Main(array<String^>^ args)
{
String^ machineName = "";
array<PerformanceCounterCategory^>^ categories;
// Copy the machine name argument into the local variable.
try
{
machineName = args[1]=="."? "": args[1];
}
catch (...)
{
}
// Generate a list of categories registered on the specified computer.
try
{
if (machineName->Length > 0)
{
categories = PerformanceCounterCategory::GetCategories(machineName);
}
else
{
categories = PerformanceCounterCategory::GetCategories();
}
}
catch(Exception^ ex)
{
Console::WriteLine("Unable to get categories on " +
(machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
Console::WriteLine(ex->Message);
return;
}
Console::WriteLine("These categories are registered on " +
(machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
// Create and sort an array of category names.
array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
int objX;
for (objX = 0; objX < categories->Length; objX++)
{
categoryNames[objX] = categories[objX]->CategoryName;
}
Array::Sort(categoryNames);
for (objX = 0; objX < categories->Length; objX++)
{
Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
}
}
public static void Main(string[] args)
{
string machineName = "";
PerformanceCounterCategory[] categories;
// Copy the machine name argument into the local variable.
try
{
machineName = args[0]=="."? "": args[0];
}
catch
{
}
// Generate a list of categories registered on the specified computer.
try
{
if (machineName.Length > 0)
{
categories = PerformanceCounterCategory.GetCategories(machineName);
}
else
{
categories = PerformanceCounterCategory.GetCategories();
}
}
catch(Exception ex)
{
Console.WriteLine("Unable to get categories on " +
(machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
Console.WriteLine(ex.Message);
return;
}
Console.WriteLine("These categories are registered on " +
(machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
// Create and sort an array of category names.
string[] categoryNames = new string[categories.Length];
int objX;
for(objX = 0; objX < categories.Length; objX++)
{
categoryNames[objX] = categories[objX].CategoryName;
}
Array.Sort(categoryNames);
for(objX = 0; objX < categories.Length; objX++)
{
Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
}
}
Sub Main(ByVal args() As String)
Dim machineName As String = ""
Dim categories() As PerformanceCounterCategory
' Copy the machine name argument into the local variable.
Try
machineName = IIf(args(0) = ".", "", args(0))
Catch ex As Exception
End Try
' Generate a list of categories registered on the specified computer.
Try
If machineName.Length > 0 Then
categories = _
PerformanceCounterCategory.GetCategories(machineName)
Else
categories = PerformanceCounterCategory.GetCategories()
End If
Catch ex As Exception
Console.WriteLine("Unable to get categories on " & _
IIf(machineName.Length > 0, "computer ""{0}"":", _
"this computer:"), machineName)
Console.WriteLine(ex.Message)
Return
End Try
Console.WriteLine("These categories are registered on " & _
IIf(machineName.Length > 0, _
"computer ""{0}"":", "this computer:"), machineName)
' Create and sort an array of category names.
Dim categoryNames(categories.Length - 1) As String
Dim objX As Integer
For objX = 0 To categories.Length - 1
Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
categoryNames(objX) = categories(objX).CategoryName
Next objX
Array.Sort(categoryNames)
For objX = 0 To categories.Length - 1
Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
Next objX
End Sub
Hinweise
Verwenden Sie eine andere Überladung, oder übergeben Sie "." als Parameter, um die Kategorien auf dem machineName
lokalen Computer abzurufen.
Hinweis
Um Leistungsindikatoren aus einer nicht interaktiven Anmeldesitzung in Windows Vista und höher, Windows XP Professional x64 Edition oder Windows Server 2003 zu lesen, müssen Sie entweder Mitglied der Gruppe Leistungsmonitor Benutzer sein oder über Administratorrechte verfügen.
Um zu vermeiden, dass Sie Ihre Berechtigungen für den Zugriff auf Leistungsindikatoren in Windows Vista und höher erhöhen müssen, fügen Sie sich der Gruppe Leistungsmonitor Benutzer hinzu.
Unter Windows Vista (und höher) werden die Berechtigungen eines Benutzers von der Benutzerkontensteuerung (User Account Control, UAC) bestimmt. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.