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 の呼び出しに失敗しました。
管理特権なしで実行されているコードが、パフォーマンス カウンターを読み取ろうとしました。
例
次のコード例では、PerformanceCounterCategory内に PerformanceCounter インスタンスが存在するかどうかを決定します。 最初に、コンピューター名が指定されたかどうかに基づいて適切なコンストラクターを使用して、PerformanceCounterCategory オブジェクトを作成します。 次に、InstanceExists(String) を使用して、指定したインスタンスが存在するかどうかを判断し、ユーザーに通知します。 インスタンス名が指定されていない場合、この例では既定の単一インスタンス名が使用されます。
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 グループのメンバーである場合は、標準ユーザー アクセス トークンと管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられます。 既定では、ユーザーは標準のユーザー ロールになります。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 これを行うには、アプリケーション アイコンを右クリックし、管理者として実行することを示すことで、アプリケーションを起動します。
こちらもご覧ください
適用対象
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 インスタンスが PerformanceCounterCategoryに存在するかどうかを判断します。 オーバーロードは、コンピューター名が指定されているかどうかに基づいて選択されます。 インスタンス名が指定されていない場合、この例では既定の単一インスタンス名が使用されます。
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
注釈
検索対象の特定のカテゴリを指定せずに、パフォーマンス オブジェクト インスタンスがコンピューターに存在するかどうかを判断することはできません。
手記
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター ユーザー グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格する必要を回避するには、パフォーマンス モニター ユーザー グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC) によってユーザーの権限が決定されます。 組み込みの Administrators グループのメンバーである場合は、標準ユーザー アクセス トークンと管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられます。 既定では、ユーザーは標準のユーザー ロールになります。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 これを行うには、アプリケーション アイコンを右クリックし、管理者として実行することを示すことで、アプリケーションを起動します。
こちらもご覧ください
適用対象
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 インスタンスが PerformanceCounterCategoryに存在するかどうかを判断します。 オーバーロードは、コンピューター名が指定されているかどうかに基づいて選択されます。 インスタンス名が指定されていない場合、この例では既定の単一インスタンス名が使用されます。
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
注釈
検索対象の特定のカテゴリを指定せずに、パフォーマンス オブジェクト インスタンスがコンピューターに存在するかどうかを判断することはできません。
"." を使用して、ローカル コンピューターを指定できます。
手記
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター ユーザー グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格する必要を回避するには、パフォーマンス モニター ユーザー グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC) によってユーザーの権限が決定されます。 組み込みの Administrators グループのメンバーである場合は、標準ユーザー アクセス トークンと管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられます。 既定では、ユーザーは標準のユーザー ロールになります。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 これを行うには、アプリケーション アイコンを右クリックし、管理者として実行することを示すことで、アプリケーションを起動します。
こちらもご覧ください
適用対象
.NET