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 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии от обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.