[..] Copier un script autoit et l'exécuter dans le répertoir

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

[..] Copier un script autoit et l'exécuter dans le répertoir

#1

Message par Lebalbo2013 »

Bonjour à tous,
Svp j'aurais besoin d'aide.J'ai fait un autoit qui copie des fichiers dans le répertoire public et exécute un batch depuis ce répertoire.Mon problème c'est que déployant ce script via SCCM 2007,il s'exécute dans le cache du disque donc sur le C: et du coup du fait du mode d'exécution des fichiers dans le batch,ce script ne marche plus.
Si je copie manuelle ment le script que j'exécute ainsi que les fichiers à copier dans le répertoire public,ensuite j'exécute le dit script la commande fonctionne mais sur le C: elle ne fonctionne pas.
Comment faire pour créer un script qui copie le script qui est entrain d'être créé (si c'est posssible) ainsi que les autres fichiers dans le répertoire public et ensuite l'exécuter à partir de là.
Je ne sais pas si je suis suffisamment clair.Ma question est peut-être pas très futée,mais je suis ici pour apprendre.
Merci d'avance pour votre aide.
Cordialement,
Lebalbo
nouveaujoueur
Niveau 1
Niveau 1
Messages : 1
Enregistré le : mar. 24 févr. 2015 21:13
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#2

Message par nouveaujoueur »

Salut,

Il faut faire attention aux antislashs :

$MonFichier = @ScriptDir & "\MonFichier.txt"

Si le script est exécuté à la racine du disque dur (C:)

$MonFichier donnera C:\\MonFichier.txt

Pour répondre à ton interrogation, non tu n'es pas clair.
Si ton problème ne vient pas de là, poste ton script, quelqu'un de plus compétent viendra certainement te répondre.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#3

Message par jguinch »

Lebalbo2013 a écrit :il s'exécute dans le cache du disque donc sur le C: et du coup du fait du mode d'exécution des fichiers dans le batch,ce script ne marche plus.
j'ai absolument rien compris...
C'est quoi que tu appelles le répertoire public ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#4

Message par Lebalbo2013 »

Bonjour et merci de votre retour,
le répertoire "public" désigne : c:\users\public\documents.Lorsque j'exécute mon script dans ce répertoire il s'exécute correctement.MAis dans le répertoire "c:Windows\Syswo64\cache",qui est le répertoire dans lequel mon outil de télédistribution exécute mon package celà ne fonctionne pas.
J'ai donc compris qu'à partir du répertoire précédemment cité je ne peux exécuter mon script.Et je ne sais pas quelle ligne de commandes ajouter pour pas qu'il s'exécute sur "c:Windows\Syswo64\cache".
Cordialement,
Lebalbo
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#5

Message par jguinch »

OK c'est plus clair maintenant.
Par contre sans nous montrer ton script, ça va être difficile de t'aider...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#6

Message par Lebalbo2013 »

CI-dessous mon script:

Code : Tout sélectionner

FileCopy(@ScriptDir & "\Licence.sss",@DocumentsCommonDir,1)
FileCopy(@ScriptDir & "\MAJ_SAS.cmd",@DocumentsCommonDir ,1)
Run("run C:\Users\Public\Documents\MAJ_SAS.cmd")
Run("C:\Users\Public\Documents\MAJ_SAS.cmd")

Et voici le code compris dans le batch:
[Code ]
"c:\program files (X86)\sas institute\sas\v8\sas.exe" -sysin "c:\Users\Public\Documents\Licence.sss" 
Je souhaiterais qu'il s'exécute dans le répertoire : "C:\Users\Public\Documents".Car dans le cache sccm çà ne fonctionne pas.
Merci d'avance.
Cordialement,
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#7

Message par Tlem »

Bonsoir,
"C:Windows\Syswo64\cache" est un répertoire "système" et en fonction de votre OS, vous n'avez pas forcément les droits d'écriture (surtout si vous avez l'UAC d'activé).

Pour ce genre de chose, utilisez le dossier @tempdir.
Copiez votre script dans le dossier Temp et faites vos opérations depuis ce dossier.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#8

Message par jguinch »

@Lebalbo2013 : un truc que je ne comprends pas : tu dis que ta télédistribution (l'agent SCCM) exécute le package depuis c:Windows\Syswo64\cache. Mais est-ce que le package SCCM copie les autres fichiers dans ce répertoire (notamment le fichier Licence.sss) ? Ne devrais-tu pas utiliser FileInstall au lieu de FileCopy ?
Un truc du genre :

Code : Tout sélectionner

FileInstall("Licence.sss", @ScriptDir & "\Licence.sss", 1)
RunWait(@ProgramFilesDir & '\sas institute\sas\v8\sas.exe -sysin "' & @ScriptDir & '\Licence.sss"' )
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#9

Message par Lebalbo2013 »

@jguinch;l'agent SCCM copie et exécute effectivement les fichiers depuis c:Windows\Syswo64\CCM\cache.Il se sert d'un compte Système;çà a toujours bien fonctionné pour les autres applis et MAJ que je déploie mais pas pas pour cele
j'ai utilisé FileCopy dans le but de copier mon fichier "licence.sss" ainsi que mon batch dans le répertoire "Public_Mes Documents" afin de pouvoir l'exécuter dans ce repertoire sans soucis.La copie a bien fonctionné mais apparemment l'execution non puisque la licence n'est pas activé manuellement;par contre en exécutant manuellement mon batch depuis le répertoire sus-mentionné celà fonctionne bien et la licence se met bien à jour.
Je ne sais pas si çà répond à ta question.
Cordialement,
Lebalbo13
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#10

Message par jguinch »

OK donc si l'exécution se fait avec le compte système, il n'y a pas de problème de droits.
Ce qui me dérange le plus dans cette histoire, c'est le batch. :| Pourquoi ne mettre la commande dans le script AutoIt ?
Tu as testé le code que j'avais posté ? (moyennant peut-être quelques modifs)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Lebalbo2013
Niveau 4
Niveau 4
Messages : 63
Enregistré le : ven. 19 déc. 2014 18:11
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#11

Message par Lebalbo2013 »

Bonjour,
@jguinch,j'ai testé le ode que tu m'as proposé mais ce làne fontionne toujours pas;il fait que mon script:lorsque je l'exécute moi même c'est Ok.Mais via SCCM c'est KO.J'ai modfié les paramètres d'exécution via SCCM avec tous les scénarios possibles.çà marche pas.
Cependant le support de l'application me dit que j'utilise une version du logiciel ancienne qu'il faudrait metttre à jour.Mais ce n'est pas moi qui décide...
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Copier un script autoit et l'exécuter dans le réper

#12

Message par jguinch »

Ce que tu peux faire, c'est essayer de mettre des traces dans un fichier texte pour savoir ce qui se passe.
Un truc dans ce genre :
► Afficher le texte
A la fin de l'exécution de ouvres c:\windows\temp\sas_licence.log pour voir un peu ce qui s'est passé...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre