Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método PerformanceCounterCategory.GetCategories (String)

 

Publicado: octubre de 2016

Recupera una lista de las categorías de contador de rendimiento que están registrados en el equipo especificado.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

public static PerformanceCounterCategory[] GetCategories(
	string machineName
)

Parámetros

machineName
Type: System.String

Busque en el equipo.

Valor devuelto

Type: System.Diagnostics.PerformanceCounterCategory[]

Una matriz de PerformanceCounterCategory objetos que indica las categorías que están registradas en el equipo especificado.

Exception Condition
ArgumentException

El machineName parámetro no es válido.

Win32Exception

Error en una llamada a una API del sistema subyacente.

UnauthorizedAccessException

Código que se ejecuta sin privilegios administrativos intentó leer un contador de rendimiento.

Para recuperar las categorías en el equipo local, use otra sobrecarga o pasar "." como el machineName parámetro.

System_CAPS_noteNota

Para leer los contadores de rendimiento en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo usuarios del Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar sus privilegios para tener acceso a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios del Monitor de rendimiento.

En Windows Vista y versiones posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

El siguiente ejemplo de código utiliza el GetCategories para devolver una matriz de PerformanceCounterCategory objetos desde el equipo local o un equipo especificado. Convierte el PerformanceCounterCategory matriz en una matriz de nombres de categoría, que se ordena y se muestra al usuario. El GetCategories sobrecarga se selecciona basándose en si se ha especificado un nombre de equipo.

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]);
    }
}

PerformanceCounterPermission

for reading performance counter categories. Associated enumeration: F:System.Diagnostics.PerformanceCounterPermissionAccess.Read.

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: