Question

Quelqu'un sait-il quels privilèges utilisateur sont nécessaires pour que le code suivant puisse être exécuté correctement en tant que tâche planifiée sous Windows Server 2003:

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

Lorsqu’il n’est PAS exécuté en tant que tâche planifiée, c’est-à-dire sous un utilisateur connecté, tant que cet utilisateur est membre de "Utilisateurs de l'Analyseur de performances", ce code ne déclenche pas d'exception.

Lorsqu'il est exécuté en tant que tâche planifiée sous le même compte d'utilisateur, il échoue.

Le seul moyen de le faire fonctionner consiste à l'exécuter en tant que membre du groupe d'administrateurs locaux.

Des idées?

Était-ce utile?

La solution

Mes plus humbles excuses. L'utilisateur que j'utilisais n'était PAS membre de "Utilisateurs de l'Analyseur de performances". groupe.

Cela est nécessaire pour l'implémentation .NET Framework 1.1 de System.Diagnostics.

J'ai ajouté l'utilisateur à ce groupe et tout va bien.

Autres conseils

Quelles attributions de droits d'utilisateur avez-vous données au compte qui s'exécute en tant que tâche planifiée? Vous devez indiquer le compte en question "Connexion en tant que travail par lots" dans vos paramètres de sécurité locaux.

Mise à jour : votre application écrit-elle dans des fichiers et, le cas échéant, l'utilisateur de la tâche planifiée dispose-t-il de suffisamment de droits?

Je viens de faire tomber une application de test qui écrit les noms de processus du tableau Process [] renvoyé par Process.GetProcessesByName (Process.GetCurrentProcess (). ProcessName) dans un fichier et fonctionne parfaitement comme une tâche planifiée ... même en cours d'exécution sous l'identité d'un utilisateur qui est uniquement membre du groupe Utilisateurs (même pas membre de "Utilisateurs de l'Analyseur de performances".

Le dossier dans lequel il écrit se voit attribuer des droits de modification sur SYSTEM, les administrateurs et l'utilisateur de la tâche planifiée.

Y a-t-il une chance de coller votre code ou au moins un petit extrait qui montre l'échec du fichier exe en tant que tâche planifiée afin que nous puissions aider à diagnostiquer le problème?

À la vôtre
Kev

Un problème que j'ai vu lors de la lecture du nom du processus est que l'accès aux compteurs de performance peut être désactivé.

Ouvrez votre base de registre et voyez si cette clé est là: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance] "Désactiver les compteurs de performance" = dword: 00000001

Vous pouvez le définir à zéro ou le supprimer.

Extrait de MSDN :

  

Autorisations LinkDemand - pour les droits complets   confiance pour l'appelant immédiat. Ce   membre ne peut pas être utilisé par partiellement   code de confiance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top