PerformanceCounterCategory.Delete(String) メソッド

定義

カテゴリとそれに関連付けられているカウンターをローカル コンピューターから削除します。

public:
 static void Delete(System::String ^ categoryName);
public static void Delete (string categoryName);
static member Delete : string -> unit
Public Shared Sub Delete (categoryName As String)

パラメーター

categoryName
String

削除するカスタム パフォーマンス カウンター カテゴリの名前。

例外

categoryName パラメーターが null です。

categoryName パラメーターの構文が無効です。 円記号 ("\") が含まれているか、長さが 80 文字を超える場合があります。

基になるシステム API の呼び出しに失敗しました。

カテゴリがカスタム カテゴリではないため、削除できません。

管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。

次のコード例では、 メソッドを Delete 使用して、 PerformanceCounterCategory および PerformanceCounter に含まれる オブジェクトを削除します。

public static void Main(string[] args)
{
    string categoryName = "";

    // Copy the supplied argument into the local variable.
    try
    {
        categoryName = args[0];
    }
    catch (Exception ex)
    {
        Console.WriteLine("Missing argument identifying category to be deleted.");
    }

    // Delete the specified category.
    try
    {
        if (PerformanceCounterCategory.Exists(categoryName))
        {
            PerformanceCounterCategory.Delete(categoryName);
            Console.WriteLine("Category \"{0}\" deleted from this computer.", categoryName);
        }
        else
        {
            Console.WriteLine("Category name not found");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("Unable to delete " +
            "category \"{0}\" from this computer:" + "\n" + ex.Message, categoryName);
    }
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""

    ' Copy the supplied argument into the local variable.
    Try
        categoryName = args(0)
    Catch ex As Exception
        Console.WriteLine("Missing argument identifying category to be deleted.")
    End Try

    ' Delete the specified category.
    Try
        If (PerformanceCounterCategory.Exists(categoryName)) Then
            PerformanceCounterCategory.Delete(categoryName)
            Console.WriteLine( _
                "Category ""{0}"" deleted from this computer.", categoryName)
        Else
            Console.WriteLine("Category name not found")
        End If

    Catch ex As Exception
        Console.WriteLine("Unable to delete " & _
            "category ""{0}"" from this computer:" & vbCrLf & _
            ex.Message, categoryName)
    End Try
End Sub

注釈

カスタム パフォーマンス カウンター カテゴリのみをシステムから削除できます。 カテゴリからカウンターを削除することはできません。 これを行うには、カテゴリを削除し、保持するカウンターを使用してカテゴリを再作成します。 例外を回避するには、カテゴリを削除する前に存在することを確認します。

注意

Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 の非対話型ログオン セッションからパフォーマンス カウンターを読み取る場合は、パフォーマンス モニター Users グループのメンバーであるか、管理者特権を持っている必要があります。

Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格させる必要がないようにするには、自分を パフォーマンス モニター Users グループに追加します。

Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。 ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。 既定では、ユーザーは標準ユーザー ロールに所属します。 パフォーマンス カウンターにアクセスするコードを実行するには、まず特権を標準ユーザーから管理者に昇格させる必要があります。 この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。

適用対象

こちらもご覧ください