Кто-нибудь знает, какие права пользователя необходимы для успешного выполнения следующего кода в качестве запланированной задачи в Windows Server 2003:
System.Diagnostics.Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)
Когда НЕ выполняется запланированная задача, то есть от имени вошедшего в систему пользователя, пока пользователь является членом «Пользователи монитора производительности», этот код не будет генерировать исключение.
При запуске в качестве запланированной задачи под той же учетной записью пользователя происходит сбой.
Единственный способ заставить его работать - запустить его как член группы локальных администраторов.
Есть идеи?





Взято из MSDN:
Permissions LinkDemand - for full trust for the immediate caller. This member cannot be used by partially trusted code.
Одна проблема, которую я заметил при чтении имени процесса, заключается в том, что доступ к счетчикам производительности может быть отключен.
Взломайте реестр и посмотрите, есть ли там этот ключ: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance] «Отключить счетчики производительности» = dword: 00000001
Вы можете установить его на ноль или удалить.
Какие назначения прав пользователя вы дали учетной записи, которая выполняется как запланированная задача? Вам нужно будет указать учетной записи, о которой идет речь, «Входить как пакетное задание» в локальных настройках безопасности.
Обновлять: Записывает ли ваше приложение в какие-либо файлы, и если да, то есть ли у пользователя запланированной задачи достаточно прав?
Я только что создал тестовое приложение, которое записывает имена процессов из массива Process [], возвращаемого Process.GetProcessesByName (Process.GetCurrentProcess (). ProcessName), в файл, и оно отлично работает как запланированная задача ... даже под управлением личность пользователя, который является только членом группы «Пользователи» (даже не членом «Пользователи монитора производительности».
Папке, в которую он записывает, назначаются права на изменение СИСТЕМЫ, Администраторам и пользователю запланированной задачи.
Есть ли шанс вставить свой код или хотя бы достаточно небольшой фрагмент, демонстрирующий сбой exe в качестве запланированной задачи, чтобы мы могли помочь диагностировать проблему?
Ура
Кев
Это уже делается автоматически: в Windows 2000 Server, Windows 2000 Professional, Windows XP Professional и семействе Windows Server 2003 планировщик задач автоматически предоставляет это право по мере необходимости.
Мои самые скромные извинения. Пользователь, которого я использовал, НЕ был членом группы «Пользователи монитора производительности».
Это необходимо для реализации System.Diagnostics в .NET Framework 1.1.
Я добавил пользователя в эту группу, и все хорошо.
Не могли бы вы перечитать мое продолжение, это было немного большим для поля для комментариев.