none
Crée une tâche SCHTASKS depuis un serveur RRS feed

  • Question

  • Bonjour,

    Je me permets de vous adresser ce message car je ne trouve pas de réponse à mon problème.

    Pour le contexte : je dispose d'un bureau virtuel auquel j'ai un espace dédié au domaine qui est relié à un serveur.

    J'ai un accès également à un espace serveur pour gérer différentes tâches dont la base de données. Et c'est le but de ma question. J'aimerai faire en sorte d'automatiser une tâche depuis ce serveur à un utilisateur du domaine.

    Voici la ligne de commande que j'ajoute :

    schtasks /create /s K /u workflow-user /p Motdepasse /sc daily /tr "K:\chemindacces.xlsm" /st 00:30 /tn Auto

    1ère réponse de cmd : The network path is not found

    2ème réponse de cmd : The request is not supported

    J'avais essayé une deuxième possibilité dans le cas où je crée la tâche directement dans l'espace dédié et je l'appelais avec un schtasks /run depuis le serveur.

    Réponse : The request is not supported

    Les diverses réponses sur le net parlent de jouer avec le firewall pour rendre supportable cette requête.

    Dans mon cas ce n'est pas possible, y aurait-il une autre solution ? Ou aurais-je fait une erreur dans la ligne ?

    Je vous remercie d'avance.

    vendredi 10 juillet 2020 12:31

Réponses

  • Bonjour MIckael-11

    Si je lis ta commande DOS.

    • Création d'une tâche planifiée sur la machine distante nommée K
    • qui va exécuter K:\chemindacces.xlsm
    • tous les jours à 00h30
    • avec un nommage auto de la tâche
    • et sous  le nom d'utilisateur workflow-user

    On est bien d'accord que K est ta machine distante (serveur) dont tu as mappé localement sur ta machine un volume avec le lettre K.

    Le fichier a exécuter, il est bien dans ce volume K au path indiqué, quand tu regardes sur ta machine ? On va dire que oui

    Mais la tâche planifiée que tu exécutes, elle n'est pas locale à ta machine, elle est dans la machine distante. Et le K;\... ça ne correspond à rien pour elle. Il faut que tu indiques le path réel sur la machine distante. Probablement un truc comme c:\... ou D:\...

    D'où le premier message d'erreur.

    As-tu Excel sur le serveur distant ? Tu demandes de lancer un fichier, mais le système distant sait-il avec quoi l'ouvrir ?

    Le second message d'erreur pourrait venir de là.

    Tu peux tester cela aisément ainsi. Remplace ton fichier .xlsm avec le path vers notepad (qui devrait se trouver sur ton serveur distant lui). Ca devrait fonctionner.

    SI cela ne fonctionne pas, il faut aller regarder du côté du compte qui fait tourner la tâche planifiée. A-t-il les droits nécessaires pour faire tourner une tâche planifiée ? Regarde alors du côté de Log on as a batch job

    ou https://www.wincert.net/windows-server/how-to-grant-non-admin-users-permissions-for-managing-scheduled-tasks/

    https://danblee.com/log-on-as-batch-job-rights-for-task-scheduler/

    Pas vu d'erreur de syntaxe, hors ce pb de path et éventuellement d'appli pour ouvrir un fichier.

    Concernant la seconde voie que tu as essayé. Une tâche planifiée qui exécute un script et ce dernier va lancer faire des choses (comme lancer ton .xlsm) sur une machine distante c'est tout à fait possible. Mais il faut que le compte qui lance la tâche planifiée ai les droits sur ta machine, qu'il ai les droits Lire/exécuter sur la machine distante (plus exactement les droits d'accès au partage que tu as mappé avec la lettre K:) et enfin qu'il ai le dit map également. Aucun pb, tu map au début de ton script, tu lances le fichier(il fait ce qu'il doit faire), tu démap. En gros, 3 cmdlets à passer en Powershell.

    Ca me semble d'ailleurs être la meilleures voie. Fais-toi une tâche planifiée (via le GUI ou en commandline, comme tu veux) sur ta machine qui lance un script qui fait ce que décrit ci-dessus avec ton compte. Exécute la tâche. Ca fonctionne ? Change le compte par celui en cible? Ca fonctionne ? Nickel ! Ca ne fonctionne pas  ? le pb est lié au compte.

    cordialement

    Olivier

    vendredi 10 juillet 2020 14:46
  • Bonjour,

    Veuillez m'excuser pour la non réponse mais je testais de mon côté quelles étaient les possibilités pour réussir à ce que la ligne de commande fonctionne et à cela vous m'avez beaucoup aidé.

    Je poste une réponse pour vous dire que j'ai réussi mais d'une autre manière et en suivant vos conseils.

    J'ai installé le chemin réseau du serveur (fichier) sur le serveur cible pour accéder aux données et je n'utilise plus le même utilisateur car je me suis mis tous les droits nécessaire sur mon compte.

    J'ai testé du coup non pas de faire la ligne de commande sur le serveur cible mais depuis une session utilisateur (la mienne) auquel j'avais des accès administrateur sur ce serveur.

    Du coup cela donne ceci :

    schtasks /create /s Serveur cible /u Utilisateur admin /p Pwd admin /tn "Auto" /tr C:/chemindacces/script.bat /sc daily /st 00:30

    Il est important de préciser qu'il ne faut pas mettre de "" autour du chemin d'accès, en tout cas dans mon cas, le fichier était introuvable ou la tâche ne retournait aucuns fichiers.

    Et en faisant comme cela, la ligne a été accepté, la tâche s'est créée et marche depuis à merveille.

    Merci beaucoup pour vos conseils !

    vendredi 24 juillet 2020 13:54

Toutes les réponses

  • Bonjour MIckael-11

    Si je lis ta commande DOS.

    • Création d'une tâche planifiée sur la machine distante nommée K
    • qui va exécuter K:\chemindacces.xlsm
    • tous les jours à 00h30
    • avec un nommage auto de la tâche
    • et sous  le nom d'utilisateur workflow-user

    On est bien d'accord que K est ta machine distante (serveur) dont tu as mappé localement sur ta machine un volume avec le lettre K.

    Le fichier a exécuter, il est bien dans ce volume K au path indiqué, quand tu regardes sur ta machine ? On va dire que oui

    Mais la tâche planifiée que tu exécutes, elle n'est pas locale à ta machine, elle est dans la machine distante. Et le K;\... ça ne correspond à rien pour elle. Il faut que tu indiques le path réel sur la machine distante. Probablement un truc comme c:\... ou D:\...

    D'où le premier message d'erreur.

    As-tu Excel sur le serveur distant ? Tu demandes de lancer un fichier, mais le système distant sait-il avec quoi l'ouvrir ?

    Le second message d'erreur pourrait venir de là.

    Tu peux tester cela aisément ainsi. Remplace ton fichier .xlsm avec le path vers notepad (qui devrait se trouver sur ton serveur distant lui). Ca devrait fonctionner.

    SI cela ne fonctionne pas, il faut aller regarder du côté du compte qui fait tourner la tâche planifiée. A-t-il les droits nécessaires pour faire tourner une tâche planifiée ? Regarde alors du côté de Log on as a batch job

    ou https://www.wincert.net/windows-server/how-to-grant-non-admin-users-permissions-for-managing-scheduled-tasks/

    https://danblee.com/log-on-as-batch-job-rights-for-task-scheduler/

    Pas vu d'erreur de syntaxe, hors ce pb de path et éventuellement d'appli pour ouvrir un fichier.

    Concernant la seconde voie que tu as essayé. Une tâche planifiée qui exécute un script et ce dernier va lancer faire des choses (comme lancer ton .xlsm) sur une machine distante c'est tout à fait possible. Mais il faut que le compte qui lance la tâche planifiée ai les droits sur ta machine, qu'il ai les droits Lire/exécuter sur la machine distante (plus exactement les droits d'accès au partage que tu as mappé avec la lettre K:) et enfin qu'il ai le dit map également. Aucun pb, tu map au début de ton script, tu lances le fichier(il fait ce qu'il doit faire), tu démap. En gros, 3 cmdlets à passer en Powershell.

    Ca me semble d'ailleurs être la meilleures voie. Fais-toi une tâche planifiée (via le GUI ou en commandline, comme tu veux) sur ta machine qui lance un script qui fait ce que décrit ci-dessus avec ton compte. Exécute la tâche. Ca fonctionne ? Change le compte par celui en cible? Ca fonctionne ? Nickel ! Ca ne fonctionne pas  ? le pb est lié au compte.

    cordialement

    Olivier

    vendredi 10 juillet 2020 14:46
  • Bonjour,

    Veuillez m'excuser pour la non réponse mais je testais de mon côté quelles étaient les possibilités pour réussir à ce que la ligne de commande fonctionne et à cela vous m'avez beaucoup aidé.

    Je poste une réponse pour vous dire que j'ai réussi mais d'une autre manière et en suivant vos conseils.

    J'ai installé le chemin réseau du serveur (fichier) sur le serveur cible pour accéder aux données et je n'utilise plus le même utilisateur car je me suis mis tous les droits nécessaire sur mon compte.

    J'ai testé du coup non pas de faire la ligne de commande sur le serveur cible mais depuis une session utilisateur (la mienne) auquel j'avais des accès administrateur sur ce serveur.

    Du coup cela donne ceci :

    schtasks /create /s Serveur cible /u Utilisateur admin /p Pwd admin /tn "Auto" /tr C:/chemindacces/script.bat /sc daily /st 00:30

    Il est important de préciser qu'il ne faut pas mettre de "" autour du chemin d'accès, en tout cas dans mon cas, le fichier était introuvable ou la tâche ne retournait aucuns fichiers.

    Et en faisant comme cela, la ligne a été accepté, la tâche s'est créée et marche depuis à merveille.

    Merci beaucoup pour vos conseils !

    vendredi 24 juillet 2020 13:54