2016-04-29 1 views
0

Tentative d'exécution d'un script Sous le planificateur de tâches. Je peux exécuter la commande suivante à partir d'une fenêtre powershell sans problèmeWindows 2012 ne peut pas exécuter le script PowerShell

powershell.exe -ExecutionPolicy Unrestricted -NonInteractive -NoProfile -File C:\DataProcessing\Scripts\MoveDailyOpra.ps1. 

J'ai créé la tâche Dans le planificateur de tâches et lui a attribué pour exécuter une fois par jour. Cependant, je ne vois aucune preuve de la tâche même en cours d'exécution. Le fichier ps1 crée un fichier journal afin que je puisse voir ce qui se passe mais pas même un fichier journal est en cours de création.

La tâche indique qu'elle a été exécutée avec succès.

1) Comment puis-je déboguer ce que le planificateur de tâches est en train de faire 2) Quels autres attributs dois-je ajouter à la tâche.

+0

La question sera fermée comme offtopic sauf si vous fournissez plus de détails sur le problème. – bahrep

+0

Comment est-ce censé être débogué? Tout ce que vous avez posté est quelque chose que vous dites fonctionne. Comment invoquez-vous le script dans le planificateur qui échoue? Comment savez-vous que ça ne marche pas? Voyez-vous un message d'erreur? Si oui, postez-le. Quels sont les contenus du plus petit script qui reproduit le problème? –

+0

J'ai mis à jour l'entrée maintenant. –

Répondre

0

Collez le texte suivant dans le champ "Program/script" dans une nouvelle action au Task Scheduler. Une fenêtre contextuelle devrait apparaître à propos des arguments, cliquez sur Oui pour cela.

PowerShell.exe "& 'C:\DataProcessing\Scripts\MoveDailyOpra.ps1'" -ExecutionPolicy Unrestricted -NonInteractive -NoProfile 

Ce passe une chaîne de commande dans Powershell.exe, puis Powershell.exe est exicuting alors cette chaîne, ce qui appelle votre script avec l'opérateur &; connu comme l'opérateur d'appel. Donc, la chaîne d'appel est Task scheduler >>PowerShell.exe >> Votre script.ps1.

& Call operator - Exécute une commande, un script ou un bloc de script. L'opérateur d'appel, également appelé «opérateur d'invocation», vous permet d'exécuter des commandes stockées dans des variables et représentées par des chaînes. Parce que l'opérateur d'appel n'analyse pas la commande, il ne peut pas interpréter les paramètres de commande. Si cela échoue encore, vérifiez que le chemin du script est correct et que le compte sous lequel vous exécutez la tâche dispose des autorisations nécessaires pour accéder au script.

+0

Excellent. Ça a marché! La seule chose est que je ne comprends pas pourquoi. Pourquoi le travail ps1 doit-il être ajouté dans les guillemets? –

+0

@ColinLarcombe J'ai mis à jour ma réponse pour expliquer, si cela répond à votre question, veuillez accepter la réponse. – Richard