2011-08-03 2 views
1

J'ai écrit un script en Python pour appeler l'outil de ligne de commande de SecureFX (sfxcl.exe)Python subprocess.call sur sfxcl.exe ne fonctionne pas à partir de Windows 2003 Planificateur de tâches

result = subprocess.call([securefx, '/NoPrompt', '/Q', '/RetryCount', retries, 
       '/RetryDelay', '1', '/Log', sfxLogFile, '/List', '/S', session]) 

puis converti en utilisant .exe py2exe.

Je peux le programmer localement sur ma machine WinXP et tout fonctionne correctement. Lorsque je l'exécute manuellement sur l'environnement Win2003, cela fonctionne également. MAIS quand je le programme en utilisant Windows Task Scheduler dans Win2003, il traverse le script et n'appelle pas vraiment sfxcl.exe (aucun journal). Je suis assez perplexe quant à pourquoi c'est ...

Le serveur Win2003 n'a pas Python installé, alors que mon WinXP (où je l'ai développé). J'utilise Python 2.7.1.

EDIT: Ou sinon, s'il n'y a pas de réponse à cela - devrais-je envisager d'exécuter le script une fois et le définir pour réexécuter en utilisant des intervalles et quoi d'autre? Autres options? Il doit fonctionner toutes les 15-20 minutes.

+0

Je pense que je l'ai compris. Quand je lance l'exe manuellement, j'utilise mon propre identifiant, mais quand je le planifie, j'utilise un autre compte. Changer ce compte pour mes propres travaux. Ce qui est assez étrange, étant donné que cet autre compte est capable d'exécuter des fichiers batch qui appellent le même sfxcl.exe. – kouri

Répondre

0

J'ai donc trouvé le problème et c'est vraiment idiot. Si cela fonctionne manuellement, vous devez vous attendre à ce qu'il fonctionne dans le planificateur de tâches.

Maintenant, j'ai oublié de mentionner qu'il utilisait un autre compte dans le planificateur, et que ce compte n'avait pas de configuration SecureFX sessions/config et que seule cette partie ne fonctionnait pas.

Ce n'est pas un problème Python.

Questions connexes