PerformanceCounterCategory.InstanceExists 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.
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 CategoryName-Eigenschaft dieses PerformanceCounterCategory Objekts identifiziert wird. |
InstanceExists(String, String) |
Bestimmt, ob eine angegebene Kategorie auf dem lokalen Computer die angegebene Leistungsobjektinstanz enthält. |
InstanceExists(String, String, String) |
Bestimmt, ob eine angegebene Kategorie auf einem angegebenen Computer die angegebene Leistungsobjektinstanz enthält. |
InstanceExists(String)
Bestimmt, ob die angegebene Leistungsobjektinstanz in der Kategorie vorhanden ist, die durch die CategoryName-Eigenschaft dieses PerformanceCounterCategory Objekts identifiziert 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 Instanz des Leistungsobjekts in dieser Leistungsindikatorkategorie, nach der gesucht werden soll.
Gibt zurück
true
, wenn die Kategorie die angegebene Instanz des Leistungsobjekts enthält; andernfalls false
.
Ausnahmen
Die CategoryName-Eigenschaft ist null
. Die Eigenschaft wurde möglicherweise nicht festgelegt.
Der parameter instanceName
ist null
.
Fehler beim Aufruf einer zugrunde liegenden System-API.
Code, der ohne Administratorrechte ausgeführt wird, hat versucht, einen Leistungsindikator zu lesen.
Beispiele
Im folgenden Codebeispiel wird ermittelt, ob eine PerformanceCounter Instanz innerhalb eines PerformanceCounterCategoryvorhanden ist. Zunächst 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 Instanz vorhanden ist, und informiert den Benutzer. Wenn kein Instanzname angegeben ist, verwendet das Beispiel den standardmäßigen Namen einer einzelnen Instanz.
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
. Sie müssen ein PerformanceCounterCategory-Objekt erstellen und die CategoryName-Eigenschaft festlegen.
Anmerkung
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 "Benutzer der Leistungsüberwachung" 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 "Benutzer der Leistungsüberwachung" hinzu.
In Windows Vista und höher bestimmt die Benutzerkontensteuerung (User Account Control, UAC) die Berechtigungen eines Benutzers. Wenn Sie Mitglied der Gruppe "Integrierte Administratoren" sind, werden Ihnen zwei Laufzeitzugriffstoken zugewiesen: ein Standardbenutzerzugriffstoken und ein Administratorzugriffstoken. Standardmäßig befinden Sie sich in der Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Sie können dies tun, wenn Sie eine Anwendung starten, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.
Weitere Informationen
Gilt für:
InstanceExists(String, String)
Bestimmt, ob eine 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 Objektinstanz des Leistungsobjekts, nach der gesucht werden soll.
- categoryName
- String
Die Kategorie des Leistungsindikators für die Suche.
Gibt zurück
true
, wenn die Kategorie die angegebene Instanz des Leistungsobjekts enthält; andernfalls false
.
Ausnahmen
Der parameter instanceName
ist null
.
-oder-
Der parameter categoryName
ist null
.
Der parameter categoryName
ist eine leere Zeichenfolge ("").
Fehler beim Aufruf einer zugrunde liegenden System-API.
Code, der ohne Administratorrechte ausgeführt wird, hat versucht, einen Leistungsindikator zu lesen.
Beispiele
Im folgenden Codebeispiel werden die statischen Überladungen von InstanceExists verwendet, um zu bestimmen, ob die angegebene PerformanceCounter Instanz im PerformanceCounterCategoryvorhanden ist. Die Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wird. Wenn kein Instanzname angegeben ist, verwendet das Beispiel den standardmäßigen Namen einer einzelnen Instanz.
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 eine Objektinstanz eines Leistungsobjekts auf einem Computer vorhanden ist, ohne eine bestimmte Kategorie anzugeben, in der gesucht werden soll.
Anmerkung
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 "Benutzer der Leistungsüberwachung" 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 "Benutzer der Leistungsüberwachung" hinzu.
In Windows Vista und höher bestimmt die Benutzerkontensteuerung (User Account Control, UAC) die Berechtigungen eines Benutzers. Wenn Sie Mitglied der Gruppe "Integrierte Administratoren" sind, werden Ihnen zwei Laufzeitzugriffstoken zugewiesen: ein Standardbenutzerzugriffstoken und ein Administratorzugriffstoken. Standardmäßig befinden Sie sich in der Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Sie können dies tun, wenn Sie eine Anwendung starten, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.
Weitere Informationen
Gilt für:
InstanceExists(String, String, String)
Bestimmt, ob eine angegebene Kategorie auf einem 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 Objektinstanz des Leistungsobjekts, nach der gesucht werden soll.
- categoryName
- String
Die Kategorie des Leistungsindikators für die Suche.
- machineName
- String
Der Name des Computers, auf dem nach dem Kategorieinstanzpaar gesucht werden soll.
Gibt zurück
true
, wenn die Kategorie die angegebene Instanz des Leistungsobjekts enthält; andernfalls false
.
Ausnahmen
Der parameter instanceName
ist null
.
-oder-
Der parameter categoryName
ist null
.
Der parameter categoryName
ist eine leere Zeichenfolge ("").
-oder-
Der parameter machineName
ist ungültig.
Fehler beim Aufruf einer zugrunde liegenden System-API.
Code, der ohne Administratorrechte ausgeführt wird, hat versucht, einen Leistungsindikator zu lesen.
Beispiele
Im folgenden Codebeispiel werden die statischen Überladungen von InstanceExists verwendet, um zu bestimmen, ob die angegebene PerformanceCounter Instanz im PerformanceCounterCategoryvorhanden ist. Die Überladung wird basierend darauf ausgewählt, ob ein Computername angegeben wird. Wenn kein Instanzname angegeben ist, verwendet das Beispiel den standardmäßigen Namen einer einzelnen Instanz.
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 eine Objektinstanz eines Leistungsobjekts auf einem Computer vorhanden ist, ohne eine bestimmte Kategorie anzugeben, in der gesucht werden soll.
Sie können "." verwenden, um den lokalen Computer anzugeben.
Anmerkung
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 "Benutzer der Leistungsüberwachung" 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 "Benutzer der Leistungsüberwachung" hinzu.
In Windows Vista und höher bestimmt die Benutzerkontensteuerung (User Account Control, UAC) die Berechtigungen eines Benutzers. Wenn Sie Mitglied der Gruppe "Integrierte Administratoren" sind, werden Ihnen zwei Laufzeitzugriffstoken zugewiesen: ein Standardbenutzerzugriffstoken und ein Administratorzugriffstoken. Standardmäßig befinden Sie sich in der Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen vom Standardbenutzer zum Administrator erhöhen. Sie können dies tun, wenn Sie eine Anwendung starten, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie als Administrator ausführen möchten.