PerformanceCounterCategory.Exists メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
カテゴリがシステムに登録されているかどうかを判断します。
オーバーロード
| 名前 | 説明 |
|---|---|
| Exists(String) |
カテゴリがローカル コンピューターに登録されているかどうかを判断します。 |
| Exists(String, String) |
カテゴリが指定したコンピューターに登録されているかどうかを判断します。 |
Exists(String)
カテゴリがローカル コンピューターに登録されているかどうかを判断します。
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists(string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
パラメーター
- categoryName
- String
検索するパフォーマンス カウンター カテゴリの名前。
返品
true カテゴリが登録されている場合。それ以外の場合は false。
例外
categoryName パラメーターはnull。
categoryName パラメーターは空の文字列 ("") です。
基になるシステム API の呼び出しに失敗しました。
管理特権なしで実行されているコードが、パフォーマンス カウンターを読み取ろうとしました。
例
次のコード例では、"orders" という名前の PerformanceCounterCategory オブジェクトが存在するかどうかを判断します。 存在しない場合は、2 つのパフォーマンス カウンターを含むPerformanceCounterCategory オブジェクトを使用して、CounterCreationDataCollection オブジェクトが作成されます。
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
注釈
Existsメソッドを使用すると、コンピューター上のすべてのパフォーマンス カウンターが可用性をチェックしている間、パフォーマンスが著しく低下する可能性があります。 パフォーマンス カウンターにのみ書き込む場合は、アプリケーションのインストール時にパフォーマンス カウンターを作成し、カウンターにアクセスするときにカテゴリが存在すると仮定することで、パフォーマンス カウンターのグローバル検索を回避できます。 パフォーマンス カウンターから読み取るときにパフォーマンス カウンター検索を回避する方法はありません。
Note
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター ユーザー グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格する必要を回避するには、パフォーマンス モニター ユーザー グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC) によってユーザーの権限が決定されます。 組み込みの Administrators グループのメンバーである場合は、標準ユーザー アクセス トークンと管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられます。 既定では、標準のユーザー ロールになります。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 これを行うには、アプリケーション アイコンを右クリックし、管理者として実行することを示すことで、アプリケーションを起動します。
こちらもご覧ください
適用対象
Exists(String, String)
カテゴリが指定したコンピューターに登録されているかどうかを判断します。
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists(string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
パラメーター
- categoryName
- String
検索するパフォーマンス カウンター カテゴリの名前。
- machineName
- String
カテゴリを調べるコンピューターの名前。
返品
true カテゴリが登録されている場合。それ以外の場合は false。
例外
categoryName パラメーターはnull。
基になるシステム API の呼び出しに失敗しました。
ネットワーク パスが見つかりません。
呼び出し元に必要なアクセス許可がありません。
-又は-
管理特権なしで実行されているコードが、パフォーマンス カウンターを読み取ろうとしました。
例
次の例では、PerformanceCounterCategoryという名前のOrders オブジェクトが存在するかどうかを判断します。 存在しない場合、この例では、2 つのパフォーマンス カウンターを含むPerformanceCounterCategory オブジェクトを使用して、CounterCreationDataCollection オブジェクトを作成します。
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
注釈
Existsメソッドを使用すると、コンピューター上のすべてのパフォーマンス カウンターが可用性をチェックしている間、パフォーマンスが著しく低下する可能性があります。 パフォーマンス カウンターにのみ書き込む場合は、アプリケーションのインストール時にパフォーマンス カウンターを作成し、カウンターにアクセスするときにカテゴリが存在すると仮定することで、パフォーマンス カウンターのグローバル検索を回避できます。 パフォーマンス カウンターから読み取るときにパフォーマンス カウンター検索を回避する方法はありません。
Note
Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター ユーザー グループのメンバーであるか、管理者特権を持っている必要があります。
Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格する必要を回避するには、パフォーマンス モニター ユーザー グループに自分自身を追加します。
Windows Vista 以降では、ユーザー アカウント制御 (UAC) によってユーザーの権限が決定されます。 組み込みの Administrators グループのメンバーである場合は、標準ユーザー アクセス トークンと管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられます。 既定では、標準のユーザー ロールになります。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 これを行うには、アプリケーション アイコンを右クリックし、管理者として実行することを示すことで、アプリケーションを起動します。