PerformanceCounterCategory.InstanceExists Methode

Definition

Bestimmt, ob die Kategorie die angegebene Leistungsobjektinstanz enthält.

Überlädt

InstanceExists(String)

Bestimmt, ob die angegebene Leistungsobjektinstanz in der Kategorie vorhanden ist, die durch die PerformanceCounterCategory-Eigenschaft dieses CategoryName-Objekts bezeichnet wird.

InstanceExists(String, String)

Bestimmt, ob die angegebene Kategorie auf dem lokalen Computer die angegebene Leistungsobjektinstanz enthält.

InstanceExists(String, String, String)

Bestimmt, ob eine angegebene Kategorie auf dem angegebenen Computer die angegebene Leistungsobjektinstanz enthält.

InstanceExists(String)

Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs

Bestimmt, ob die angegebene Leistungsobjektinstanz in der Kategorie vorhanden ist, die durch die PerformanceCounterCategory-Eigenschaft dieses CategoryName-Objekts bezeichnet wird.

public:
 bool InstanceExists(System::String ^ instanceName);
public bool InstanceExists (string instanceName);
member this.InstanceExists : string -> bool
Public Function InstanceExists (instanceName As String) As Boolean

Parameter

instanceName
String

Die gesuchte Leistungsobjektinstanz in dieser Leistungsindikatorkategorie.

Gibt zurück

true, wenn die Kategorie die angegebene Leistungsobjektinstanz enthält, andernfalls false.

Ausnahmen

Die CategoryName-Eigenschaft ist null. Die Eigenschaft wurde möglicherweise nicht festgelegt.

Der instanceName-Parameter ist null.

Fehler beim Aufruf einer zugrunde liegenden System-API.

Ohne Administratorrechte ausgeführter Code hat versucht, einen Leistungsindikator zu lesen.

Beispiele

Im folgenden Codebeispiel wird bestimmt, ob ein PerformanceCounter instance in einem PerformanceCounterCategoryvorhanden ist. Zuerst wird ein PerformanceCounterCategory -Objekt erstellt, wobei der entsprechende Konstruktor basierend darauf verwendet wird, ob ein Computername angegeben wurde. Anschließend wird InstanceExists(String) verwendet, um zu bestimmen, ob die angegebene instance vorhanden ist, und informiert dann den Benutzer. Wenn kein instance Name angegeben ist, wird im Beispiel der Standardname mit instance verwendet.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    PerformanceCounterCategory pcc;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        instanceName = args[1];
        machineName = (args[2]=="."? "": args[2]);
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        if (machineName.Length==0)
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }

        // Check whether the instance exists.
        // Use the per-instance overload of InstanceExists.
        objectExists = pcc.InstanceExists(instanceName);
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") +
            "\n" + ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, pcc.CategoryName, pcc.MachineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    Dim pcc As PerformanceCounterCategory
    Const SINGLE_INSTANCE_NAME As String = _
        "systemdiagnosticsperfcounterlibsingleinstance"

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        instanceName = args(1)
        machineName = IIf(args(2) = ".", "", args(2))
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    ' Use the given instance name or use the default single-instance name.
    If instanceName.Length = 0 Then
        instanceName = SINGLE_INSTANCE_NAME
    End If

    Try
        If machineName.Length = 0 Then
            pcc = New PerformanceCounterCategory(categoryName)
        Else
            pcc = New PerformanceCounterCategory(categoryName, machineName)
        End If

        ' Check whether the instance exists.
        ' Use the per-instance overload of InstanceExists.
        objectExists = pcc.InstanceExists(instanceName)

    Catch ex As Exception
        Console.WriteLine("Unable to check for the existence of " & _
            "instance ""{0}"" in category ""{1}"" on " & _
            IIf(machineName.Length > 0, _
            "computer ""{2}"":", "this computer:") & vbCrLf & _
            ex.Message, instanceName, categoryName, machineName)
        Return
    End Try

    ' Tell the user whether the instance exists.
    Console.WriteLine("Instance ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        instanceName, pcc.CategoryName, pcc.MachineName)
End Sub

Hinweise

Diese Überladung von InstanceExists ist nicht static. Es erfordert, dass Sie ein PerformanceCounterCategory -Objekt erstellen und die CategoryName -Eigenschaft festlegen.

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:

InstanceExists(String, String)

Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs

Bestimmt, ob die angegebene Kategorie auf dem lokalen Computer die angegebene Leistungsobjektinstanz enthält.

public:
 static bool InstanceExists(System::String ^ instanceName, System::String ^ categoryName);
public static bool InstanceExists (string instanceName, string categoryName);
static member InstanceExists : string * string -> bool
Public Shared Function InstanceExists (instanceName As String, categoryName As String) As Boolean

Parameter

instanceName
String

Die gesuchte Leistungsobjektinstanz.

categoryName
String

Die zu durchsuchende Leistungsindikatorkategorie.

Gibt zurück

true, wenn die Kategorie die angegebene Leistungsobjektinstanz enthält, andernfalls false.

Ausnahmen

Der instanceName-Parameter ist null.

- oder -

Der categoryName-Parameter ist null.

Der categoryName-Parameter ist eine leere Zeichenfolge ("").

Fehler beim Aufruf einer zugrunde liegenden System-API.

Ohne Administratorrechte ausgeführter Code hat versucht, einen Leistungsindikator zu lesen.

Beispiele

Im folgenden Codebeispiel werden die statischen Überladungen von InstanceExists verwendet, um zu bestimmen, ob die angegebene PerformanceCounter instance im PerformanceCounterCategoryvorhanden ist. Die Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wird. Wenn kein instance Name angegeben ist, wird im Beispiel der Standardname mit instance verwendet.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        instanceName = args[1];
        machineName = args[2]=="."? "": args[2];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        // Check whether the specified instance exists.
        // Use the static forms of the InstanceExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") + "\n" +
            ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, categoryName, machineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    Const SINGLE_INSTANCE_NAME As String = _
        "systemdiagnosticsperfcounterlibsingleinstance"

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        instanceName = args(1)
        machineName = IIf(args(2) = ".", "", args(2))
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    ' Use the given instance name or use the default single-instance name.
    If instanceName.Length = 0 Then
        instanceName = SINGLE_INSTANCE_NAME
    End If

    Try
        ' Check whether the specified instance exists.
        ' Use the static forms of the InstanceExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName, machineName)
        End If

    Catch ex As Exception
        Console.WriteLine("Unable to check for the existence of " & _
            "instance ""{0}"" in category ""{1}"" on " & _
            IIf(machineName.Length > 0, _
            "computer ""{2}"":", "this computer:") & vbCrLf & _
            ex.Message, instanceName, categoryName, machineName)
        Return
    End Try

    ' Tell the user whether the instance exists.
    Console.WriteLine("Instance ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        instanceName, categoryName, machineName)
End Sub

Hinweise

Es ist nicht möglich, zu bestimmen, ob ein Leistungsobjekt auf einem Computer vorhanden instance, ohne eine bestimmte Kategorie anzugeben, in der gesucht werden soll.

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:

InstanceExists(String, String, String)

Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs
Quelle:
PerformanceCounterCategory.cs

Bestimmt, ob eine angegebene Kategorie auf dem angegebenen Computer die angegebene Leistungsobjektinstanz enthält.

public:
 static bool InstanceExists(System::String ^ instanceName, System::String ^ categoryName, System::String ^ machineName);
public static bool InstanceExists (string instanceName, string categoryName, string machineName);
static member InstanceExists : string * string * string -> bool
Public Shared Function InstanceExists (instanceName As String, categoryName As String, machineName As String) As Boolean

Parameter

instanceName
String

Die gesuchte Leistungsobjektinstanz.

categoryName
String

Die zu durchsuchende Leistungsindikatorkategorie.

machineName
String

Der Name des Computers, auf dem das Paar von Kategorieinstanzen gesucht werden soll.

Gibt zurück

true, wenn die Kategorie die angegebene Leistungsobjektinstanz enthält, andernfalls false.

Ausnahmen

Der instanceName-Parameter ist null.

- oder -

Der categoryName-Parameter ist null.

Der categoryName-Parameter ist eine leere Zeichenfolge ("").

- oder -

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 werden die statischen Überladungen von InstanceExists verwendet, um zu bestimmen, ob die angegebene PerformanceCounter instance im PerformanceCounterCategoryvorhanden ist. Die Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wird. Wenn kein instance Name angegeben ist, wird im Beispiel der Standardname mit instance verwendet.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        instanceName = args[1];
        machineName = args[2]=="."? "": args[2];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        // Check whether the specified instance exists.
        // Use the static forms of the InstanceExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "instance \"{0}\" in category \"{1}\" on " +
            (machineName.Length>0? "computer \"{2}\":": "this computer:") + "\n" +
            ex.Message, instanceName, categoryName, machineName);
        return;
    }

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") +
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."),
        instanceName, categoryName, machineName);
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim instanceName As String = ""
    Dim machineName As String = ""
    Dim objectExists As Boolean = False
    Const SINGLE_INSTANCE_NAME As String = _
        "systemdiagnosticsperfcounterlibsingleinstance"

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        instanceName = args(1)
        machineName = IIf(args(2) = ".", "", args(2))
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    ' Use the given instance name or use the default single-instance name.
    If instanceName.Length = 0 Then
        instanceName = SINGLE_INSTANCE_NAME
    End If

    Try
        ' Check whether the specified instance exists.
        ' Use the static forms of the InstanceExists method.
        If machineName.Length = 0 Then
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName)
        Else
            objectExists = PerformanceCounterCategory.InstanceExists( _
                instanceName, categoryName, machineName)
        End If

    Catch ex As Exception
        Console.WriteLine("Unable to check for the existence of " & _
            "instance ""{0}"" in category ""{1}"" on " & _
            IIf(machineName.Length > 0, _
            "computer ""{2}"":", "this computer:") & vbCrLf & _
            ex.Message, instanceName, categoryName, machineName)
        Return
    End Try

    ' Tell the user whether the instance exists.
    Console.WriteLine("Instance ""{0}"" " & _
        IIf(objectExists, "exists", "does not exist") & _
        " in category ""{1}"" on " & _
        IIf(machineName.Length > 0, _
            "computer ""{2}"".", "this computer."), _
        instanceName, categoryName, machineName)
End Sub

Hinweise

Es ist nicht möglich, zu bestimmen, ob ein Leistungsobjekt auf einem Computer vorhanden instance, ohne eine bestimmte Kategorie anzugeben, in der gesucht werden soll.

Sie können "." verwenden, um den lokalen Computer anzugeben.

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: