PerformanceCounterCategory.GetCategories PerformanceCounterCategory.GetCategories PerformanceCounterCategory.GetCategories PerformanceCounterCategory.GetCategories Method

定義

コンピューターに登録されているパフォーマンス カウンター カテゴリの一覧を取得します。Retrieves a list of the performance counter categories that are registered on a computer.

オーバーロード

GetCategories() GetCategories() GetCategories() GetCategories()

ローカル コンピューターに登録されているパフォーマンス カウンター カテゴリの一覧を取得します。Retrieves a list of the performance counter categories that are registered on the local computer.

GetCategories(String) GetCategories(String) GetCategories(String) GetCategories(String)

指定したコンピューターに登録されているパフォーマンス カウンター カテゴリの一覧を取得します。Retrieves a list of the performance counter categories that are registered on the specified computer.

GetCategories() GetCategories() GetCategories() GetCategories()

ローカル コンピューターに登録されているパフォーマンス カウンター カテゴリの一覧を取得します。Retrieves a list of the performance counter categories that are registered on the local computer.

public:
 static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories();
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories ();
static member GetCategories : unit -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories () As PerformanceCounterCategory()

戻り値

ローカル コンピューターに登録されているカテゴリを指す PerformanceCounterCategory オブジェクトの配列。An array of PerformanceCounterCategory objects indicating the categories that are registered on the local computer.

例外

基になるシステム API の呼び出しに失敗しました。A call to an underlying system API failed.

管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。Code that is executing without administrative privileges attempted to read a performance counter.

次のコード例ではGetCategories 、メソッドを使用してPerformanceCounterCategory 、ローカルコンピューターまたは指定したコンピューターからオブジェクトの配列を返します。The following code example uses the GetCategories method to return an array of PerformanceCounterCategory objects from the local computer or a specified computer. 配列はPerformanceCounterCategoryカテゴリ名の配列に変換され、ユーザーに対して並べ替えられて表示されます。It converts the PerformanceCounterCategory array into an array of category names, which it sorts and displays for the user. オーバーロードGetCategoriesは、コンピューター名が指定されているかどうかに基づいて選択されます。The GetCategories overload is selected based on whether a computer name was specified.

public:
    static void Main(array<String^>^ args)
    {
        String^ machineName = "";
        array<PerformanceCounterCategory^>^ categories;

        // Copy the machine name argument into the local variable.
        try
        {
            machineName = args[1]=="."? "": args[1];
        }
        catch (...)
        {
        }

        // Generate a list of categories registered on the specified computer.
        try
        {
            if (machineName->Length > 0)
            {
                categories = PerformanceCounterCategory::GetCategories(machineName);
            }
            else
            {
                categories = PerformanceCounterCategory::GetCategories();
            }
        }
        catch(Exception^ ex)
        {
            Console::WriteLine("Unable to get categories on " +
                (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
            Console::WriteLine(ex->Message);
            return;
        }

        Console::WriteLine("These categories are registered on " +
            (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

        // Create and sort an array of category names.
        array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
        int objX;
        for (objX = 0; objX < categories->Length; objX++)
        {
            categoryNames[objX] = categories[objX]->CategoryName;
        }
        Array::Sort(categoryNames);

        for (objX = 0; objX < categories->Length; objX++)
        {
            Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
        }
    }
public static void Main(string[] args)
{
    string machineName = "";
    PerformanceCounterCategory[] categories;

    // Copy the machine name argument into the local variable.
    try
    {
        machineName = args[0]=="."? "": args[0];
    }
    catch
    {
    }

    // Generate a list of categories registered on the specified computer.
    try
    {
        if (machineName.Length > 0)
        {
            categories = PerformanceCounterCategory.GetCategories(machineName);
        }
        else
        {
            categories = PerformanceCounterCategory.GetCategories();
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get categories on " + 
            (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
        Console.WriteLine(ex.Message);
        return;
    }

    Console.WriteLine("These categories are registered on " + 
        (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

    // Create and sort an array of category names.
    string[] categoryNames = new string[categories.Length];
    int objX;
    for(objX = 0; objX < categories.Length; objX++)
    {
        categoryNames[objX] = categories[objX].CategoryName;
    }
    Array.Sort(categoryNames);

    for(objX = 0; objX < categories.Length; objX++)
    {
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
    }
}
Sub Main(ByVal args() As String)
    Dim machineName As String = ""
    Dim categories() As PerformanceCounterCategory

    ' Copy the machine name argument into the local variable.
    Try
        machineName = IIf(args(0) = ".", "", args(0))
    Catch ex As Exception
    End Try

    ' Generate a list of categories registered on the specified computer.
    Try
        If machineName.Length > 0 Then
            categories = _
                PerformanceCounterCategory.GetCategories(machineName)
        Else
            categories = PerformanceCounterCategory.GetCategories()
        End If
    Catch ex As Exception
        Console.WriteLine("Unable to get categories on " & _
            IIf(machineName.Length > 0, "computer ""{0}"":", _
            "this computer:"), machineName)
        Console.WriteLine(ex.Message)
        Return
    End Try

    Console.WriteLine("These categories are registered on " & _
        IIf(machineName.Length > 0, _
            "computer ""{0}"":", "this computer:"), machineName)

    ' Create and sort an array of category names.
    Dim categoryNames(categories.Length - 1) As String
    Dim objX As Integer
    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
        categoryNames(objX) = categories(objX).CategoryName
    Next objX
    Array.Sort(categoryNames)

    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
    Next objX
End Sub

注釈

注意

Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 でパフォーマンスカウンターを読み取るには、Performance Monitor Users グループのメンバであるか、管理者特権を持っている必要があります。To read performance counters in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Windows Vista 以降のパフォーマンスカウンターにアクセスするために特権を昇格させる必要がないようにするには、Performance Monitor Users グループに自分自身を追加します。To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 既定では、ユーザーは標準ユーザー ロールに所属します。By default, you are in the standard user role. パフォーマンスカウンターにアクセスするコードを実行するには、まず、特権を標準ユーザーから管理者に昇格させる必要があります。To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

セキュリティ

PerformanceCounterPermission
パフォーマンスカウンターカテゴリを読み取ります。for reading performance counter categories. Read (関連する列挙体)Associated enumeration: Read.

こちらもご覧ください

GetCategories(String) GetCategories(String) GetCategories(String) GetCategories(String)

指定したコンピューターに登録されているパフォーマンス カウンター カテゴリの一覧を取得します。Retrieves a list of the performance counter categories that are registered on the specified computer.

public:
 static cli::array <System::Diagnostics::PerformanceCounterCategory ^> ^ GetCategories(System::String ^ machineName);
public static System.Diagnostics.PerformanceCounterCategory[] GetCategories (string machineName);
static member GetCategories : string -> System.Diagnostics.PerformanceCounterCategory[]
Public Shared Function GetCategories (machineName As String) As PerformanceCounterCategory()

パラメーター

machineName
String String String String

検索対象のコンピューター。The computer to look on.

戻り値

指定したコンピューターに登録されているカテゴリを指す PerformanceCounterCategory オブジェクトの配列。An array of PerformanceCounterCategory objects indicating the categories that are registered on the specified computer.

例外

machineName パラメーターが正しくありません。The machineName parameter is invalid.

基になるシステム API の呼び出しに失敗しました。A call to an underlying system API failed.

管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。Code that is executing without administrative privileges attempted to read a performance counter.

次のコード例ではGetCategories 、メソッドを使用してPerformanceCounterCategory 、ローカルコンピューターまたは指定したコンピューターからオブジェクトの配列を返します。The following code example uses the GetCategories method to return an array of PerformanceCounterCategory objects from the local computer or a specified computer. 配列はPerformanceCounterCategoryカテゴリ名の配列に変換され、ユーザーに対して並べ替えられて表示されます。It converts the PerformanceCounterCategory array into an array of category names, which it sorts and displays for the user. オーバーロードGetCategoriesは、コンピューター名が指定されているかどうかに基づいて選択されます。The GetCategories overload is selected based on whether a computer name was specified.

public:
    static void Main(array<String^>^ args)
    {
        String^ machineName = "";
        array<PerformanceCounterCategory^>^ categories;

        // Copy the machine name argument into the local variable.
        try
        {
            machineName = args[1]=="."? "": args[1];
        }
        catch (...)
        {
        }

        // Generate a list of categories registered on the specified computer.
        try
        {
            if (machineName->Length > 0)
            {
                categories = PerformanceCounterCategory::GetCategories(machineName);
            }
            else
            {
                categories = PerformanceCounterCategory::GetCategories();
            }
        }
        catch(Exception^ ex)
        {
            Console::WriteLine("Unable to get categories on " +
                (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
            Console::WriteLine(ex->Message);
            return;
        }

        Console::WriteLine("These categories are registered on " +
            (machineName->Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

        // Create and sort an array of category names.
        array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
        int objX;
        for (objX = 0; objX < categories->Length; objX++)
        {
            categoryNames[objX] = categories[objX]->CategoryName;
        }
        Array::Sort(categoryNames);

        for (objX = 0; objX < categories->Length; objX++)
        {
            Console::WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
        }
    }
public static void Main(string[] args)
{
    string machineName = "";
    PerformanceCounterCategory[] categories;

    // Copy the machine name argument into the local variable.
    try
    {
        machineName = args[0]=="."? "": args[0];
    }
    catch
    {
    }

    // Generate a list of categories registered on the specified computer.
    try
    {
        if (machineName.Length > 0)
        {
            categories = PerformanceCounterCategory.GetCategories(machineName);
        }
        else
        {
            categories = PerformanceCounterCategory.GetCategories();
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get categories on " + 
            (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);
        Console.WriteLine(ex.Message);
        return;
    }

    Console.WriteLine("These categories are registered on " + 
        (machineName.Length > 0 ? "computer \"{0}\":": "this computer:"), machineName);

    // Create and sort an array of category names.
    string[] categoryNames = new string[categories.Length];
    int objX;
    for(objX = 0; objX < categories.Length; objX++)
    {
        categoryNames[objX] = categories[objX].CategoryName;
    }
    Array.Sort(categoryNames);

    for(objX = 0; objX < categories.Length; objX++)
    {
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
    }
}
Sub Main(ByVal args() As String)
    Dim machineName As String = ""
    Dim categories() As PerformanceCounterCategory

    ' Copy the machine name argument into the local variable.
    Try
        machineName = IIf(args(0) = ".", "", args(0))
    Catch ex As Exception
    End Try

    ' Generate a list of categories registered on the specified computer.
    Try
        If machineName.Length > 0 Then
            categories = _
                PerformanceCounterCategory.GetCategories(machineName)
        Else
            categories = PerformanceCounterCategory.GetCategories()
        End If
    Catch ex As Exception
        Console.WriteLine("Unable to get categories on " & _
            IIf(machineName.Length > 0, "computer ""{0}"":", _
            "this computer:"), machineName)
        Console.WriteLine(ex.Message)
        Return
    End Try

    Console.WriteLine("These categories are registered on " & _
        IIf(machineName.Length > 0, _
            "computer ""{0}"":", "this computer:"), machineName)

    ' Create and sort an array of category names.
    Dim categoryNames(categories.Length - 1) As String
    Dim objX As Integer
    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0}, {1}", objX, categories(objX).CategoryName)
        categoryNames(objX) = categories(objX).CategoryName
    Next objX
    Array.Sort(categoryNames)

    For objX = 0 To categories.Length - 1
        Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames(objX))
    Next objX
End Sub

注釈

ローカルコンピューター上のカテゴリを取得するには、別のオーバーロードを使用するか、 machineNameパラメーターとして "." を渡します。To retrieve the categories on the local computer, use another overload or pass "." as the machineName parameter.

注意

Windows Vista 以降、Windows XP Professional x64 Edition、または Windows Server 2003 でパフォーマンスカウンターを読み取るには、Performance Monitor Users グループのメンバであるか、管理者特権を持っている必要があります。To read performance counters in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Windows Vista 以降のパフォーマンスカウンターにアクセスするために特権を昇格させる必要がないようにするには、Performance Monitor Users グループに自分自身を追加します。To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

Windows Vista 以降では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 既定では、ユーザーは標準ユーザー ロールに所属します。By default, you are in the standard user role. パフォーマンスカウンターにアクセスするコードを実行するには、まず、特権を標準ユーザーから管理者に昇格させる必要があります。To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

セキュリティ

PerformanceCounterPermission
パフォーマンスカウンターカテゴリを読み取ります。for reading performance counter categories. Read (関連する列挙体)Associated enumeration: Read.

こちらもご覧ください

適用対象