Вопрос

Кто-нибудь знает, какие права пользователя необходимы для успешного выполнения следующего кода в качестве запланированной задачи на Windows Server 2003:

System.Diagnostics.Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)

Когда НЕ выполняется как запланированная задача, т.е.под вошедшим в систему пользователем, пока пользователь является членом «Пользователей монитора производительности», этот код не будет генерировать исключение.

При запуске запланированной задачи под той же учетной записью пользователя происходит сбой.

Единственный способ заставить его работать — запустить его от имени члена группы локальных администраторов.

Есть идеи?

Это было полезно?

Решение

Мои скромные извинения.Пользователь, которого я использовал, НЕ был членом группы «Пользователи монитора производительности».

Это необходимо для реализации System.Diagnostics в .NET Framework 1.1.

Я добавил пользователя в эту группу, и все в порядке.

Другие советы

Какие права пользователя вы назначили учетной записи, которая выполняется как запланированное задание?Вам нужно будет указать рассматриваемую учетную запись «Войти как пакетное задание» в локальных настройках безопасности.

Обновлять: Записывает ли ваше приложение какие-либо файлы, и если да, имеет ли пользователь запланированного задания достаточные права?

Я только что создал тестовое приложение, которое записывает имена процессов из массива Process[], возвращаемого Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName), в файл, и оно отлично работает как запланированная задача... даже работает под управлением личность пользователя, который является только членом группы «Пользователи» (даже не членом «Пользователи монитора производительности»).

Папке, в которую он записывает, назначаются права на изменение для СИСТЕМЫ, администраторов и пользователя запланированного задания.

Есть ли шанс вставить ваш код или хотя бы достаточно небольшой фрагмент, демонстрирующий сбой exe-файла в качестве запланированной задачи, чтобы мы могли помочь диагностировать проблему?

Ваше здоровье
Кев

Одна из проблем, с которой я столкнулся при чтении имени процесса, заключается в том, что доступ к счетчикам производительности может быть отключен.

Откройте реестр и посмотрите, есть ли там этот ключ:Hkey_local_machine System CurrentControlset Services Perfproc Performance] «Отключить счетчики производительности» = DWORD: 00000001

Вы можете либо установить его на ноль, либо удалить.

Взято из MSDN:

Разрешения LinkDemand - для полного доверия для непосредственного вызывающего абонента.Этот член не может быть использован частично доверенным кодом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top