none
Script Powershell en tâche planifiée RRS feed

  • Question

  • Bonjour,

    J'ai créé il y a quelques mois une tâche planifiée exécutant un script Powershell.

    Malgré la bonne exécution de la tâche selon Windows, je viens de m'apercevoir que le résultat n'est pas celui attendu.

    Dans le menu Action de la tâche, voici comment cela est paramétré :

    • Dans Programme/script : powershell.exe
    • Dans Ajouter des arguments : -File "C:\SystemsStatesAutoDelete.ps1

    La tâche s'exécute bien (code 0x0), mais le script semble avoir des difficulté à faire son travail.

    Pourtant, la commande powershell.exe -File "C:\SystemsStatesAutoDelete.ps1" lancée dans une invite MSDOS s'exécute parfaitement.

    Comment dois-je adapter cette tâche planifiée pour qu'elle fonctionne ?

    D'avance merci.

    Bonne journée.


    FXE

    lundi 15 septembre 2014 09:00

Réponses

  • Bonjour,

    Dans ce cas là il faudra vérifier que les paramètres de la tâche sont bien configurés, voir screenshot:



    L’information n’a de valeur que si elle est partagée!! AK


    • Modifié Ahmed KASMI jeudi 18 septembre 2014 10:36
    • Marqué comme réponse FXE jeudi 18 septembre 2014 14:13
    jeudi 18 septembre 2014 10:35

Toutes les réponses

  • Bonjour,

    Essayez ceci:

    - dans  “Programme/script” :

    powershell.exe

    - dans “Ajouter des arguments (factultatif)” :

    -noprofile -executionpolicy Unrestricted -file C:\SystemsStatesAutoDelete.ps1

    Autre chose il faut s'assurer que la tache planifiée s'exécute avec un compte qui suffisamment de droit.


    A+


    L’information n’a de valeur que si elle est partagée!! AK

    lundi 15 septembre 2014 09:40
  • Bonjour et merci pour cette réponse.

    Je vais tenté cela ce soir.

    Le compte utilisé dispose bien des droits nécessaires.

    Je vous tiens au courant.


    FXE

    lundi 15 septembre 2014 09:53
  • Bonjour et merci pour cette réponse.

    Je vais tenté cela ce soir.

    Le compte utilisé dispose bien des droits nécessaires.

    Je vous tiens au courant.


    FXE

    Bonjour,

    Il faut les droit pour exécuter le script, mais aussi le droit "Logon as a batch job"(minimum) sur la machine qui exécute le script.

    A des fins de tests, tu peux essayer de la faire tourner en tant que SYSTEM, ou un compte administrateur de la machine.


    Blog
    Scripts

    mardi 16 septembre 2014 06:58
  • Bonjour,

    Cela n'a pas fonctionné. J'utilise un compte Admins du domaine.

    Que faut-il faire pur que cela fonctionne ??? Encore une fois, la commande lancée à la main fonctionne parfaitement !

    Merci.


    FXE

    mardi 16 septembre 2014 09:45
  • Bonjour,

    Quelle est votre  politique d'exécution de script Powershell ? Faites un Get-ExcutionPolicy.

     

    A+



    L’information n’a de valeur que si elle est partagée!! AK

    mardi 16 septembre 2014 10:17
  • Bonjour Ahmed,

    Sur le serveur exécutant la tâche planifiée : RemoteSigned.

    Sur les serveurs ciblés par le script : Restricted.

    Faudrait-il que j'intègre dans le script un Set-ExecutionPolicy RemoteSigned ? Et le cas échéant cette commande sera-t-elle prise en compte par les serveurs cibles ?


    FXE

    mardi 16 septembre 2014 11:55
  • Bonjour,

    Oui il faudra voir qu’est ce que vous avez dans « script-bloc », pour tester il faut commencer par mettre un « Unrestricted », et voir si ça marche ou non ensuite vous pouvez affiner votre politique de sécurité en conséquence.

    A+



    L’information n’a de valeur que si elle est partagée!! AK

    mardi 16 septembre 2014 12:06
  • Voici la commande lancée par la tâche planifiée : powershelle.exe -noprofile -executionpolicy Unrestricted -File "C:\SystemsStatesAutoDelete.ps1"

    Voici le script :

    $sessions = New-PSSession Serveur1, Serveur2, Serveur3, Serveur4, Serveur5, Serveur6, Serveur7
    
    Invoke-Command -Session $sessions -ScriptBlock {Start-Job -Name Wbadmin -ScriptBlock {Wbadmin delete systemstatebackup -keepversions:5 -quiet}}
    invoke-Command -Session $sessions -Command {Wait-Job -Name Wbadmin}
    Remove-PSSession $sessions

     

    FXE

    mardi 16 septembre 2014 13:39
  • Bonjour,

    Donc le script est sur votre poste et vous essayez d'exécuter à travers ce scripte des commandes distantes, ce qui revient  en quelques sorte à l’exécution de ce script sur les machines distantes, il faudra donc mettre executionpolicy sur Unrestricted, il faut aussi paramétrer winrm sur les machines distantes avec Enablepsremoting.

    A+


    L’information n’a de valeur que si elle est partagée!! AK


    mardi 16 septembre 2014 19:13
  • Oui j'entends bien, mais au risque de me répéter, le script fonctionne lorsqu'il est lancé hors tâche planifiée (commande DOS) depuis mon serveur local, et les serveurs distants exécutent bien les commandes demandées.

    WinRM est activé par GPO sur tous les serveurs visés.


    FXE


    • Modifié FXE mardi 16 septembre 2014 19:19
    mardi 16 septembre 2014 19:19
  • Bonjour,

    Quel compte utilisez-vous pour exécuter le script Powershell sous cmd? et comment vous faites pour exécuter le script ? sous forme .\votre script? ou sous forme de commande?

    A+


    L’information n’a de valeur que si elle est partagée!! AK

    mercredi 17 septembre 2014 17:16
  • Bonsoir,

    La commande lancée sous DOS, avec le même compte que celui utilisé en tâche planifiée, membre du groupe Admins du domaine, est :

    powershelle.exe -noprofile -executionpolicy Unrestricted -File "C:\SystemsStatesAutoDelete.ps1"

    Merci.


    FXE


    • Modifié FXE mercredi 17 septembre 2014 18:40
    mercredi 17 septembre 2014 18:27
  • Bonjour,

    Dans ce cas là il faudra vérifier que les paramètres de la tâche sont bien configurés, voir screenshot:



    L’information n’a de valeur que si elle est partagée!! AK


    • Modifié Ahmed KASMI jeudi 18 septembre 2014 10:36
    • Marqué comme réponse FXE jeudi 18 septembre 2014 14:13
    jeudi 18 septembre 2014 10:35
  • Bonjour Ahmed et merci !!!

    Ce qui a fait la différence : check "Run with highest privilèges".

    Bonne continuation.


    FXE

    jeudi 18 septembre 2014 14:14