PerformanceCounterCategory.InstanceExists 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정한 성능 개체 인스턴스가 범주에 포함되는지 여부를 확인합니다.
오버로드
InstanceExists(String) |
지정한 성능 개체 인스턴스가 이 PerformanceCounterCategory 개체의 CategoryName 속성에 의해 식별된 범주에 있는지 여부를 확인합니다. |
InstanceExists(String, String) |
로컬 컴퓨터의 지정한 범주에 지정한 성능 개체 인스턴스가 있는지 여부를 확인합니다. |
InstanceExists(String, String, String) |
지정한 컴퓨터의 지정한 범주에 지정한 성능 개체 인스턴스가 있는지 여부를 확인합니다. |
InstanceExists(String)
지정한 성능 개체 인스턴스가 이 PerformanceCounterCategory 개체의 CategoryName 속성에 의해 식별된 범주에 있는지 여부를 확인합니다.
public:
bool InstanceExists(System::String ^ instanceName);
public bool InstanceExists (string instanceName);
member this.InstanceExists : string -> bool
Public Function InstanceExists (instanceName As String) As Boolean
매개 변수
- instanceName
- String
이 성능 카운터 범주에서 검색할 성능 개체 인스턴스입니다.
반환
해당 범주에 지정한 성능 개체 인스턴스가 있으면 true
이고, 그렇지 않으면 false
입니다.
예외
CategoryName 속성은 null
입니다. 속성을 설정하지 않았을 수도 있습니다.
instanceName
매개 변수가 null
인 경우
내부 시스템 API를 호출하지 못한 경우
관리자 권한 없이 실행되는 코드가 성능 카운터를 읽으려고 한 경우
예제
다음 코드 예제에서는 instance 내에 있는지 여부를 PerformanceCounter 결정 합니다PerformanceCounterCategory. 먼저 컴퓨터 이름이 지정되었는지 여부에 따라 적절한 생성자를 사용하여 개체를 만듭니다 PerformanceCounterCategory . 그런 다음 를 사용하여 InstanceExists(String) 지정된 instance 있는지 확인한 다음 사용자에게 알릴 수 있습니다. instance 이름을 지정하지 않으면 이 예제에서는 기본 단일 instance 이름을 사용합니다.
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
설명
의 이 오버로드는 InstanceExists 가 아닙니다 static
. 개체를 만들고 PerformanceCounterCategory 속성을 설정 CategoryName 해야 합니다.
참고
Windows Vista 이상, Windows XP Professional x64 Edition 또는 Windows Server 2003의 비대화형 로그온 세션에서 성능 카운터를 읽으려면 성능 모니터 사용자 그룹의 구성원이거나 관리 권한이 있어야 합니다.
Windows Vista 이상에서 성능 카운터에 액세스하기 위해 권한을 상승시킬 필요가 없도록 하려면 성능 모니터 사용자 그룹에 자신을 추가합니다.
Windows Vista 이상에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다. 기본적으로 표준 사용자 역할이 지정됩니다. 성능 카운터에 액세스하는 코드를 실행하려면 먼저 표준 사용자에서 관리자로 권한을 상승시켜야 합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자로 실행하도록 지정하여 애플리케이션을 시작하면 이 작업을 수행할 수 있습니다.
추가 정보
적용 대상
InstanceExists(String, String)
로컬 컴퓨터의 지정한 범주에 지정한 성능 개체 인스턴스가 있는지 여부를 확인합니다.
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
매개 변수
- instanceName
- String
검색할 성능 개체 인스턴스입니다.
- categoryName
- String
검색할 성능 카운터 범주입니다.
반환
해당 범주에 지정한 성능 개체 인스턴스가 있으면 true
이고, 그렇지 않으면 false
입니다.
예외
categoryName
매개 변수가 빈 문자열("")입니다.
내부 시스템 API를 호출하지 못한 경우
관리자 권한 없이 실행되는 코드가 성능 카운터를 읽으려고 한 경우
예제
다음 코드 예제에서는 의 InstanceExists 정적 오버로드를 사용하여 지정된 PerformanceCounter instance 에 PerformanceCounterCategory있는지 여부를 확인합니다. 컴퓨터 이름이 지정되었는지 여부에 따라 오버로드가 선택됩니다. instance 이름을 지정하지 않으면 이 예제에서는 기본 단일 instance 이름을 사용합니다.
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
설명
살펴볼 특정 범주를 지정하지 않고는 컴퓨터에 성능 개체 instance 있는지 여부를 확인할 수 없습니다.
참고
Windows Vista 이상, Windows XP Professional x64 Edition 또는 Windows Server 2003의 비대화형 로그온 세션에서 성능 카운터를 읽으려면 성능 모니터 사용자 그룹의 구성원이거나 관리 권한이 있어야 합니다.
Windows Vista 이상에서 성능 카운터에 액세스하기 위해 권한을 상승시킬 필요가 없도록 하려면 성능 모니터 사용자 그룹에 자신을 추가합니다.
Windows Vista 이상에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다. 기본적으로 표준 사용자 역할이 지정됩니다. 성능 카운터에 액세스하는 코드를 실행하려면 먼저 표준 사용자에서 관리자로 권한을 상승시켜야 합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자로 실행하도록 지정하여 애플리케이션을 시작하면 이 작업을 수행할 수 있습니다.
추가 정보
적용 대상
InstanceExists(String, String, String)
지정한 컴퓨터의 지정한 범주에 지정한 성능 개체 인스턴스가 있는지 여부를 확인합니다.
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
매개 변수
- instanceName
- String
검색할 성능 개체 인스턴스입니다.
- categoryName
- String
검색할 성능 카운터 범주입니다.
- machineName
- String
범주 인스턴스 쌍을 찾을 대상 컴퓨터의 이름입니다.
반환
해당 범주에 지정한 성능 개체 인스턴스가 있으면 true
이고, 그렇지 않으면 false
입니다.
예외
내부 시스템 API를 호출하지 못한 경우
관리자 권한 없이 실행되는 코드가 성능 카운터를 읽으려고 한 경우
예제
다음 코드 예제에서는 의 InstanceExists 정적 오버로드를 사용하여 지정된 PerformanceCounter instance 에 PerformanceCounterCategory있는지 여부를 확인합니다. 컴퓨터 이름이 지정되었는지 여부에 따라 오버로드가 선택됩니다. instance 이름을 지정하지 않으면 이 예제에서는 기본 단일 instance 이름을 사용합니다.
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
설명
살펴볼 특정 범주를 지정하지 않고는 컴퓨터에 성능 개체 instance 있는지 여부를 확인할 수 없습니다.
"."를 사용하여 로컬 컴퓨터를 지정할 수 있습니다.
참고
Windows Vista 이상, Windows XP Professional x64 Edition 또는 Windows Server 2003의 비대화형 로그온 세션에서 성능 카운터를 읽으려면 성능 모니터 사용자 그룹의 구성원이거나 관리 권한이 있어야 합니다.
Windows Vista 이상에서 성능 카운터에 액세스하기 위해 권한을 상승시킬 필요가 없도록 하려면 성능 모니터 사용자 그룹에 자신을 추가합니다.
Windows Vista 이상에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다. 기본적으로 표준 사용자 역할이 지정됩니다. 성능 카운터에 액세스하는 코드를 실행하려면 먼저 표준 사용자에서 관리자로 권한을 상승시켜야 합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자로 실행하도록 지정하여 애플리케이션을 시작하면 이 작업을 수행할 수 있습니다.
추가 정보
적용 대상
.NET