2017-09-07 2 views
0

J'ai un script PS initialisé par Windows Task Scheduler qui s'exécute toutes les cinq minutes. J'ai remarqué quand il initie, l'invite de commande s'ouvre brièvement puis s'en va (la nature même du script lui-même qui est compréhensible). Cependant, je veux le cacher en arrière-plan parce que toutes les cinq minutes l'invite de commande apparaît et peut être obstructive. J'ai essayé de cocher la case "caché" dans Windows Task Scheduler, mais le résultat est que le script ne fonctionnera pas.Ligne de code PowerShell pour masquer la fenêtre de dialogue lorsque le script est exécuté via le planificateur de tâches Windows?

J'ai également essayé d'écrire -Hidden dans le champ arguments des propriétés du planificateur de tâches. Le script ne fonctionnera pas.

Y a-t-il une ligne de code qui permettra à mon script PS de s'exécuter en arrière-plan et de ne pas gêner l'utilisation de l'environnement de bureau?

Je ne suis pas intéressé par l'emballage dans .bat ou un script VB. Je suis curieux de savoir s'il y a une ligne de code PS que je peux ajouter pour travailler avec tous les .ps1. Je suis au courant d'une solution de script VB fourni ci-dessous et si dernier recours, devra l'utiliser:

https://www.sapien.com/blog/2006/12/20/schedule-hidden-powershell-tasks/

+2

double possible de [Comment exécuter un script PowerShell sans afficher une fenêtre?] (Https://stackoverflow.com/questions/1802127/how-to-run-a-powershell-script-without-displaying -une fenêtre) –

Répondre

1

La réponse courte est non. Vous aurez toujours la fenêtre PowerShell au moins flash momentanément (comme avec -WindowStyle Hidden) en raison de la façon dont il est exécuté. La réponse est, malheureusement, l'une des solutions qui ne vous intéresse pas: enveloppez-la dans un exécutable ou lancez-la avec le script VB ci-dessous.

Dim shell,command 
command = "powershell.exe -nologo -command \\path-to\your-script.ps1" 
set shell = CreateObject("WScript.Shell") 
shell.Run command,0'