Utiliser le planificateur de Tâches Windows pour les scripts Powershell

Toujours à la découverte de Domoticz sous Windows voyons ici comme ajouter un script Powershell (ps1) dans le planificateur de tâches Windows pour en assurer l’exécution à intervalles réguliers.

Les script Powershell et le lanceur associé.

Nous avions vu dans un épisode précédent que pour permettre facilement de lancer un PS j’utilise un fichier en .bat du même nom qui contient tout ce qui faut pour que le PS se lance.

Exemple de fichier bat :

Powershell.exe -WindowStyle hidden  -nologo -executionpolicy remotesigned -Command "& 'C:\Program Files (x86)\Domoticz\scripts\powershell\Backup_Domoticz.ps1'"

C’est ce fichier bat qu’il faudra lancer via le planificateur.

Le planificateur.

Sachez que il faudra un compte d’administrateur possédant un mot de passe (les password vide ne sont pas acceptés par défaut)

Dans le panneau de configuration et dans les outils d’administration vous trouvez le planificateur de tâches.

planif_windows_1

Utilisez le menu à droite « Créer une tâche ».

Dans l’onglet Général

En :

  • 1 Nommons la tâche
  • 2 Autorisons nous à lancer le script même si il n’y à pas de session ouverte
  • 3 Donnons les droits maximaux à l’exécution du script .

planif_windows_2

Validons par « OK » puis dans l’écran qui suit :

planif_windows_3

  • Choisissiez tout en haut dans « Lancer la tâche » le « A l’heure programmée » (1) puis  la bonne fréquence (Une seule fois, Jour, Semaine , Mois).
  • Pour lancer la tâche toutes les X minutes chosissez « Chaque Jour »  (2)
  • Répétez la tâche toutes les 5 minutes (1,4…) et  « Indéfiniment » (3)
  • Éventuellement donnez une date de fin.

Validez puis allons dans l’onglet « Actions » (1)

planif_windows_4

  • Choisir « Démarrer un programme » vu que le reste est « déconseillé » !  (2)
  • Utiliser le bouton « Parcourir » pour aller chercher le script en .bat à lancer (3)
  • Validez et

 

  • Rendez vous dans l’écran des « Paramètres »   (1)
  • Cochez  « Exécuter la tâche des que ….  (2)
  • Décochez « Arrêter la tâche si elle s’exécute …. » (3) sinon ….

planif_windows_5

Validez tout ça

Windows vous demande de vous identifier avec votre mot de passe d’un compte administrateur.

Les mots de passe vide ne sont pas autorisés par défaut (sauf modifs dans la base de registre pour autoriser cela)

planif_windows_6

N.B Dans les actions on peut aussi indiquer comme ci-dessous :

Powershell.exe dans le programme à lancer et tous les paramètres qui sont dans le fichier en.bat sont passés dans les arguments y compris le chemin complet vers le fichier ps1.

-WindowStyle hidden  -nologo -executionpolicy remotesigned -Command "& 'C:\Program Files (x86)\Domoticz\scripts\powershell\Backup_Domoticz.ps1'"

 

planif_windows_8

Opération réussie !

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz, powershell, windows and tagged , , , , , .

10 Comments

  1. Bonjour,

    J’essaie de faire parler domoticz avec les powershell.
    Ce powershell qui marche très bien, exécuté en fenetre dos, ne marche pas lancé de domoticz. Savez-vous pourquoi ?

    (New-Object –ComObject SAPI.SPVoice).Speak(“Bonjour”)

  2. Bonjour
    Je n’ai pas trouvé le moyen de lancer une commande powershell autrement que dans un .bat
    et comme le précise l’article en question

    Les script Powershell et le lanceur associé.

    Nous avions vu dans un épisode précédent que pour permettre facilement de lancer un PS j’utilise un fichier en .bat du même nom qui contient tout ce qui faut pour que le PS se lance.

    Exemple de fichier bat :

    Powershell.exe -WindowStyle hidden -nologo -executionpolicy remotesigned -Command « & ‘C:\Program Files (x86)\Domoticz\scripts\powershell\Backup_Domoticz.ps1′ »

    C’est ce fichier bat qu’il faudra lancer via le planificateur.

  3. Bonjour Patrice,

    J’avais bien compris et mon commentaire  était bien dans ce contexte:   Domoticz lance un .bat qui lance le .ps1 de la synthèse vocale. Mais cela ne marche pas. (Alors que le dos lançant le .bat lancant le .ps1 marche.)

    Savez-vous pourquoi ? (Ou comment faire parler domoticz?)

     

    merci d’avance,

  4. Bonsoir

    Ah ok tu n’avais pas précisé que cela fonctionait depuis le .bat

    Tu as mis ce script dans quoi exactement ?

    Dans un action on/off fais gaffe à la syntaxe :

    script://scripts\powershell\Backup_Domoticz.bat
    et surtout au chemin que tu utilises qui à mon avis DOIT être un ss dossier de Domoticz
  5. J’ai simplifié et cela ne marche toujours pas. Un action ON lance un .bat qui contient 2 lignes :

    d:\Domoticz\bala.exe -t salut

    d:\Domoticz\test.bat

    test.bat crée un fichier avec un echo xx>1

    bala.exe est un petit programme de synthèse vocale, en ligne de commande que l’on trouve ici :

    http://www.cross-plus-a.com/bconsole.htm

    Résultat : Le fichier se crée bien ! mais pas de son …

    Et toujours, si je lance le .bat d’une fenetre DOS, ca marche bien.

     

    Quelqu’un a-t-il déjà réussi à lancer un .exe ?

  6. Ah j’ai compris en essayant balabolka

    J’ai fait un .bat qui contient

    c:\temp\test\bala.exe -t « bonjour »

    que je lance par un action on

    et en effet la fenêtre s’ouvre puis se referme aussitôt , ne laissant pas le temps à la commande de s’exécuter

    en ajoutant un start /wait comme cela

    start /wait c:\temp\test\bala.exe -t « bonjour »

    ca roule

    PS il faut le chemin complet vers balabloka console

  7. Cela ne marche pas pour moi. D’ailleurs il n’y a pas de fenêtre qui s’ouvre. Tu as installé Domoticz comme une application windows ?

    Le mien fonctionne en service Windows. C’est peut-être l’explication.

  8. J’ai installé en tant qu’appli Windows je ne vois pas l’impact qu’aurais le fonctionnement en tant que service puisque avec un peu de chance le service tourne avec les droits maximaux d’administrateur

    A toute fin utile la syntaxe dans le action est bien

    script://c:\temp\test\parle.bat ??? qui contient le start /wait évoqué ci dessus

     

  9. oui, pas de doute côté syntaxe des chemins.

    Je crains vraiment que ce soit mort, car je viens de lire qu’un service windows (depuis XP) n’a pas le droit d’interagir avec le desktop (ni affichage GUI , ni son). C’est logique, c’est fait pour fonctionner en multi User et même lorsqu’il n’y a pas de user loggé. Il ne saurait pas avec quel utilisateur interagir…

    Du coup, tout programme que Domoticz en service windows lancerait ne peut avoir ni affichage ni son. Voilà donc une vrai différence entre Domoticz as an application ou as a service !

  10. Oui en effet pour le service

    il me semble que L’interface web doit agir avec le service et donc si tu a un script dans un action on et que tu cliques sur le switche en question comme tu est devant une interface web le son peut sortir sur cette interface
    Mais peut être me trompe-je

    Toutefois dans les services il y a une option dans l’onglet « connexion » qui est « interagir avec le bureau » a ta place j’essaierai

     

Comments are closed.