IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tache planifiée avec tout le monde


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut Tache planifiée avec tout le monde
    Bonjour,
    j'ai crée un petit script qui me crée une tâche planifiée.
    Mais je me heurte à un problème.
    cette tâche se crée avec mon utilisateur. Je souhaiterais la lancer avec l'utilisateur "Système", elle se crée bien, mais ne se lance jamais. J'ai un retour (0x2).

    Est-ce que quelqu'un a une ruse de sioux ?

    mode code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    TaskService taskService = new TaskService();
                    TaskDefinition taskDefinition = taskService.NewTask();
                    taskDefinition.RegistrationInfo.Description = "Synchronisation Horaire pour Désigo CC";
     
                    // Spécifiez le déclencheur pour la tâche (par exemple, déclencheur quotidien à une heure spécifique).
                    DailyTrigger dailyTrigger = new DailyTrigger();
                    dailyTrigger.StartBoundary = DateTime.Today + TimeSpan.FromHours(2); // Exemple : à 2h
                    taskDefinition.Triggers.Add(dailyTrigger);
     
                    // Spécifiez l'action à effectuer (par exemple, exécuter un programme).
                    taskDefinition.Actions.Add(new ExecAction(cheminFichierBat));
     
                    // Enregistrez la tâche dans le planificateur de tâches.
                    taskService.RootFolder.RegisterTaskDefinition(NomTacheNTP, taskDefinition, TaskCreation.CreateOrUpdate, "SYSTEM", null, TaskLogonType.ServiceAccount); // ce code crée la tache avec l'utilisateur "Système" mais cette tâche ne fonctionne pas
     
                    //taskService.RootFolder.RegisterTaskDefinition(NomTacheNTP, taskDefinition); ce code crée avec mon Utilisateur et fonctionne bien

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    elle est censé faire quoi ?

  3. #3
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Lancer un .bat.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    Si c'est censé lancer une application avec interface graphique, il me semble que ce n'est pas possible (surtout si il n'y a pas d'utilisateur qui a ouvert une session)
    Il faut aussi que system ait accès au fichier ou aux ressources demandées par ton fichier .bat (system n'a accès qu'aux ressources locales, sauf erreur)

  5. #5
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Re,
    Non pas besoin d'interface graphique.
    Système bien bien accès en controle total sur mon .bat

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    Si tu forces la tâche crée à s'exécuter depuis le planificateur des tâches, elle se lance ? avec ou sans erreur ?

    Tu la fais lancer à 2h du matin, mais ton PC est dans quel état à cette heure là? ta session est ouverte et verrouillée? tu as déconnecté/fermé ta session (toutes les sessions) ?

  7. #7
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Salut,
    Si je la force depuis le planificateur de tâches, elle ne se lance pas. Erreur (0x2)
    le but est de créer cette tâche depuis un compte Admin, mais qu'elle puisse s'exécuter depuis tous les utilisateurs.
    Quand je la crée manuellement, j'ai le même problème. Ce n'est donc pas un problème de code C#, mais plutot de droit... j'ai bien les droits (complets) sur l'utilisateur "système" sur mon .bat.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    reste donc à voir ce que fait vraiment ton .bat en lancement normal, depuis une invite de commande en tant qu'administrateur

  9. #9
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Comme on a peu d'info, voici ce que je ferai dans cette situation.

    Je commencerai par vérifier si mon bat est bien exécuté, ou si c'est un problème même pour le lancement du bat. Pour cela, rien de plus. Faire un bat qui ne fait rien, à part renvoyer un code spécifique "exit /b 123". Si lors de l'exécution de la tâche planifiée, tu obtiens un code de retour de 123, alors le bat est exécuté. Sinon, si tu continues à avoir 2, c'est un problème ailleurs (très certainement de droits).

    Si le bat est bien exécuté, alors c'est le bat lui-même qui renvoi le code d'erreur 2. Il reste donc à trouver où il le renvoie et pourquoi. Et là encore, il peut s'agir d'un problème de droit. Ce n'est pas parce que tu as donné les droits suffisant à l'utilisateur SYSTEM sur le bat qu'il va avoir les droits suffisants pour accéder aux éléments référencés dans le bat, qu'ils soient référencé directement ou indirectement.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  10. #10
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    As tu essayés en ajoutant ceci a ton code :
    taskdefinition.Principal.RunLevel = TaskRunLevel.HighestAvailable;

    Le but étant d octroyer le maximum de droits au compte : NT AUTHORITY/SYSTEM

  11. #11
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Bonjour à tous,
    mon Batch (192.168.1.62 est une autre machine en fonctionnement au moment des tests) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    net start w32time
    net time \\192.168.1.62 /set /yes
    quand je le lance direct (en double cliquant dessus), ça fonctionne
    quand je le lance depuis la tâche, ==> 0x2
    Si je modifie mon code par celui de François, (exit /b 123) ==> 0x7B = 123 donc ça marche

    Si je comprends bien, j'arrive a lancer le .bat, mais il n'exécute pas le code. Une erreur de droit ?

  12. #12
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    Bonjour,

    As tu essayés en ajoutant ceci a ton code :
    taskdefinition.Principal.RunLevel = TaskRunLevel.HighestAvailable;

    Le but étant d octroyer le maximum de droits au compte : NT AUTHORITY/SYSTEM
    Salut,
    celà ne change rien

  13. #13
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Très certainement un problème de droit oui. Le compte SYSTEM est fait pour faire des opérations en local sur la machine et à des droits restreint sur les accès réseaux. Je ne sais pas trop ce qu'il en est pour la gestion de la date et l'heure d'une machine, mais, par exemple, par défaut, le compte SYSTEM n'a pas les droits d'accéder au partage de fichier (pour des raisons de sécurité).

    Mais là, cela dépasse mes compétences. Tu auras certainement plus d'aide auprès du forum Windows Serveur
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  14. #14
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    On va essayé...
    Merci

  15. #15
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Vu pour ta réponse.👍
    Maintenant on va éclaircir certains points :

    - ton programme (.exe compilé) qui créé ta tâche planifiée demande t il une elevation de privilèges (administrateur) pour inscrire la tache dans le planificateur de tâches ? As tu ajouté "RequireAdministrator" dans le fichier Manifest.xml au niveau des propriétés de ton projet ?
    - Peux tu nous dire où est situé ton fichier .bat (le chemin exacte) ?
    - peux tu nous dire ce que fait le contenu de ton fichier .bat exactement ? utilises tu un chemin de profil utilisateur par exemple ou appelles tu des chemins réseaux (je precise bien a l intérieur de ton fichier .bat) ?

    ++

  16. #16
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Re,
    Mon programme doit se lancer en Admin pour exécuter d'autres tâches, il est donc Admin.
    je n'ai pas ajouté "RequireAdministrator" dans le fichier Manifest.xml au niveau des propriétés de mon projet (je ne sais pas à quoi cela sert...)

    chemin de mon .bat : D:\DCC\Logiciels\SynchroHoraire.bat (D:\ est un disque physique de mon PC)
    code de mon .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    net start w32time
    net time \\192.168.1.62 /set /yes

  17. #17
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 126
    Points : 1 636
    Points
    1 636
    Par défaut
    Si tu saisis ces commandes dans une invite de commandes (en tant qu'administrateur), tu as des messages d'erreurs ?

  18. #18
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Afin de tester si une erreur est retournée depuis ton script bat (et son contexte d execution = compte SYSTEM) il faudrait :
    1- télécharger Psexec64.exe ou Psexec.exe (https://learn.microsoft.com/fr-fr/sysinternals/downloads/psexec)
    2- ouvrir une cmd avec elevation administrateur
    3- exécuter Psexec -s -i cmd.exe dans la cmd (cela ouvre une cmd dans le contexte du compte SYSTEM)
    4- tu executes ton .bat et tu vois s il y a des messages d erreur.

    ++

  19. #19
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2020
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Novembre 2020
    Messages : 85
    Points : 42
    Points
    42
    Par défaut
    Salut,
    Citation Envoyé par umfred Voir le message
    Si tu saisis ces commandes dans une invite de commandes (en tant qu'administrateur), tu as des messages d'erreurs ?
    Si je lance le .bat ça fonctionne

  20. #20
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Daditj Voir le message
    Salut,

    Si je lance le .bat ça fonctionne
    C est un test avec un compte administrateur donc tu n es pas dans le même contexte d execution .....

    ....

Discussions similaires

  1. [Débutant] Probleme Tache planifier avec System32
    Par charouel dans le forum C#
    Réponses: 0
    Dernier message: 26/03/2014, 10h32
  2. tache planifie avec java
    Par hb2ee dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 13/04/2009, 13h26
  3. Tache planifiée avec Crontab
    Par rinuom dans le forum Linux
    Réponses: 6
    Dernier message: 11/09/2008, 17h14
  4. tache planifiée avec excel
    Par murka62 dans le forum Excel
    Réponses: 4
    Dernier message: 03/07/2008, 20h56
  5. Tache planifiée avec un raccourci comme exécution
    Par electrosat03 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2008, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo