Se connecter avec
S'enregistrer | Connectez-vous

batch dos et taches planifiées

Dernière réponse : dans Programmation

Bonjour

j'ai passé un peu de temps cette aprem pour creer un petit batch sous dos pour qu'en fonction de l'heure de la journée ou de la nuit mon ordi modifie lui meme ses parametres de securité notament en ce qui concerne la demande de mot de passe à la sortie de l'economiseur d'ecran.

donc je cherche la bonne clé, fais mon batch sous ms dos, je le teste vite fait corrige les bugs et cool ca marche.... bref, etape suivante plutot que le mettre a tourner en boucle, je me dit que je vais confier au planificateur des taches windows son execution, je cree ma tache, pointe le bon fichier, le programme ts les 15 minutes je valide, il me demande le nom d'utilisateur et le mdp pour l'executer, je lui met tous ca. et au lieu d'attendre je force l'execution sur le champ et la mon batch n'a plus du tout le meme comportement que quand je lance direct le .bat

voila le script que j'ai ecrit:
  1. FOR /F "tokens=1-4 delims=: " %%I IN ('time /t') DO SET h=%%I
  2.  
  3. if %h% geq 20 goto SOIR
  4. if %h% geq 12 goto APREM
  5. if %h% geq 08 goto MATIN
  6. if %h% geq 00 goto NUIT
  7. GOTO FIN
  8. :SOIR
  9. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 1 /f
  10. Goto FIN
  11. :APREM
  12. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 0 /f
  13. Goto FIN
  14. :MATIN
  15. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 1 /f
  16. Goto FIN
  17. :NUIT
  18. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 0 /f
  19. Goto FIN
  20. :FIN
  21. reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure



essayez le eventuellement

voila ce que ca fait chez moi


PS: je suis sous xp PRO SP2 a jour

Autres pages sur : batch dos taches planifiees

Lassé par la pub ? Créez un compte
Expert Programmation

Bonjour Enigma,

Au lieu de <--- debut/fin du script --->, merci d'utiliser la balise CODE, conformément au règlement.
Pour modifier ton message, utilise l'un des bontons suivants :

Merci.

dslé pour les balises, je ne les connaissais pas, je vais modifier de suite.

oui bien sur j'ai oublié de preciser, c'est bien le meme compte, un compte avec des privileges d'administrateur.

mais j'ai été un peu vite dans l'analyse du probleme

si je lance le script à la main en double cliquant dessus il me fait la meme chose
si je lance via la console (cmd) en appelant le fichier .bat au bon endroit ca marche plutot pas mal (mais pas à 100% ce que je trouve encore plus etrange)

Expert Programmation

Comment ça tu ne savais pas ? --> Tu aurais dû ces règles avant toutes choses :o 

Comment ça "Mais pas à 100%" ?
J'ai l'impression que ton environnement diffère en fonction de l'appel :/  Etudie le résultat de ce script en fonction du type d'appel :
  1. @SET
  2. @PAUSE

cela fait plus de 7 ans que je suis incrit sur le forum, je les ai un peu oubliées les regles que j'ai lues il y a 7 ans et je passe pas mon temps a relire ts les jours...

je peux detailler le pas à 100%, si je passe par la console DOS, la premiere execution me renvoie la meme erreur que par l'explorateur (je precise par l'explorateur ca ne marche jamais, vu qu'il ouvre une nouvelle fenetre dos à chaque fois), mais les suivantes ca roule par la console.

je vais essayer ton code, et dans le mien je vais ajouter un pre appel a la fonction reg.
http://membres.lycos.fr/gwen2213/set_console.jpg
http://membres.lycos.fr/gwen2213/set_explorer.jpg

il y a une différence au niveau de la variable path, si je lance de l'explorateur il me rajoute plein de rep vers mes programmes, mais il en manque un, c'est le c:\windows.0/system

j'ai modifié le script comme suit, et ca bloque sur la ligne 3 qui est mal interpretée
  1. FOR /F "tokens=1-4 delims=: " %%I IN ('time /t') DO SET h=%%I
  2.  
  3. reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure
  4.  
  5. if %h% geq 20 goto SOIR
La suite ne change pas bien sur :$

faut il caser un set path au debut ?? parce que si j'ouvre la console via executer cmd j'ai ca au debut:
http://membres.lycos.fr/gwen2213/set_new_fenetre_console.jpg
ca ressemble bcp a ce que j'ai lors d'un lancement par l'explorateur...

PS: reg.exe se trouve dans: C:\WINDOWS.0\system32

Citation :
reg ne prend pas la version courte du premier niveau ?

-> HCU\Control Panel\Desktop" /v ScreenSaverIsSecure


si bien sur mais y a moins d'erreur possible en mettant le chemin entier.

finalement, j'ai resolu le bug en rajoutant la ligne 1, en faisant pointer la variable path vers le rep ou se situe reg.exe, CQFD


  1. set path=C:\WINDOWS.0\system32
  2. FOR /F "tokens=1-4 delims=: " %%I IN ('time /t') DO SET h=%%I
  3.  
  4. reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure
  5.  
  6. if %h% geq 20 goto SOIR
  7. if %h% geq 12 goto APREM
  8. if %h% geq 08 goto MATIN
  9. if %h% geq 00 goto NUIT
  10. GOTO FIN
  11. :SOIR
  12. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 1 /f
  13. Goto FIN
  14. :APREM
  15. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 0 /f
  16. Goto FIN
  17. :MATIN
  18. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 1 /f
  19. Goto FIN
  20. :NUIT
  21. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure /d 0 /f
  22. Goto FIN
  23. :FIN
  24. reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaverIsSecure
  25. pause

Expert Programmation

Bonjour enigma,

Je suis ravi que ça fonctionne.
C'était donc bien un problème d'environnement.

Je te propose plutôt ceci pour ta première ligne :
SET PATH=C:\WINDOWS.0\system32;%PATH%


--------------------

Quant au règlement, désolé, je suis aussi modérateur, et à ce titre, aussi bien pour les vieux de la vieille comme toi ou pour les ptits nouveaux, je dois veilller à son application. Tu remarqueras que cela ne m'avait pas empêché de te proposer une piste (qui s'est avéré bonne ;)  )

Citation :
Je te propose plutôt ceci pour ta première ligne :
SET PATH=C:\WINDOWS.0\system32;%PATH%


modif effectuée, ca ne fait bien sur pas merder le script

Citation :
Quant au règlement, désolé, je suis aussi modérateur, et à ce titre, aussi bien pour les vieux de la vieille comme toi ou pour les ptits nouveaux, je dois veilller à son application. Tu remarqueras que cela ne m'avait pas empêché de te proposer une piste (qui s'est avéré bonne ;)  )


Je suis aussi modérateur d'un forum par conséquent je sais ce qu'il en est, mais comprends bien que les forumeurs ne passent pas leur temps a étudier toutes les nouvelles fonctionnalités de chaque site... quand aux reglement par extension c'est pareil...



Lassé par la pub ? Créez un compte