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

注釈

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

Note

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

Windows Vista 以降のパフォーマンス カウンターにアクセスするために特権を昇格する必要を回避するには、パフォーマンス モニター ユーザー グループに自分自身を追加します。

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

適用対象

こちらもご覧ください