GetProcessesByName () и запланированная задача Windows Server 2003 - PullRequest
1 голос
/ 30 сентября 2008

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

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

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

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

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

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 01 октября 2008

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

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

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

1 голос
/ 30 сентября 2008

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

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

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

Папке, в которую она пишет, назначены права на изменение для SYSTEM, Администраторов и пользователя запланированной задачи.

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

Приветствия
Кев

0 голосов
/ 30 сентября 2008

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

Взломайте ваш реестр и посмотрите, есть ли этот ключ: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance] «Отключить счетчики производительности» = dword: 00000001

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

0 голосов
/ 30 сентября 2008

Взято из MSDN :

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...