Kaseya Community

DANS UNE PROCEDURE RECUPERER LE CHEMIN %PROGRAMFILES%

  • Bonjour, dans une procédure je souhaite récupérer le chemin défini par la variable MSDOS %PROGRAMFILES%

    j'ai essayer avec %PROGRAMFILES%   et %%PROGRAMFILES%% et #PROGRAMFILES# qui ne fonctionne pas

    il est possible de faire une executeShellCommand  avec echo %PROGRAMFILES%>>chemin.txt puis récupérer le contenu du fichier 

    mais je cherche une solution plus élégante

    MERCI 

  • Bonjour Tony,

    Tu es sur la bonne piste, j'aurais utilisé le ExecuteShellCommandToVariable. Tu gagneras quelques lignes dans le script.

  • Bonjour Guillaume c'est tony GENILINK

    Oui bien sur ExecuteShellCommandToVariable, mais je pensait a quelque chose de natif sur Kaseya

    si cela n'est pas possible je m'en contenterai

    TONY

    MERCI

  • voici le problème avec ExecuteShellCommandToVariable

    ExecuteShellCommandToVariable echo %PROGRAMFILES% renvoie dans la variable #global:cmdresults# le chemin de PF mais le problème c'est qu'il renvoie dans la variable un espace à la fin donc

    "#global:cmdresults#\Genilink\Kaseya\GNLNK973606860675296\KASetup.exe " UNINSTALL /silent

    ce transforme en :

    C:\Program Files \Genilink\Kaseya\GNLNK973606860675296\KASetup.exe UNINSTALL /silent

    donc la chaîne ne fonctionne pas car il y a un espace après C:\Program Files

  • voila une solution qui marche et qui prends seulement 2 lignes de procédure

    1) echo "%programfiles%\Genilink\Kaseya\GNLNK973606860675296\KASetup.exe UNINSTALL /silent">>c:\pf.bat

    2) ExecuteShellCommand c:\pf.bat

  • Salut Tony,

    %programfiles% te donnera toujours c:\Program Files\ que tu te trouve sur un x86 ou x64, donc dans ton cas je pense que ca fonctionnera pas.

    Utilise plutot :

    <ScriptExport>

    <Procedure name="KAseya Path" treePres="3" id="1649536930" folderId="71343251211851194132192511" treeFullPath="myProcedures - edeneuve">
    <Body description="">
    <Statement name="GetVariable" continueOnFail="false">
    <Parameter xsi:type="EnumParameter" name="VariableType" value="AgentInstallDirectory"/>
    <Parameter xsi:type="StringParameter" name="SourceContent" value=""/>
    <Parameter xsi:type="StringParameter" name="VariableName" value="kaseyapath"/>
    </Statement>
    <Statement name="WriteScriptLogEntry" continueOnFail="false">
    <Parameter xsi:type="StringParameter" name="Comment" value="#kaseyapath#"/>
    </Statement>
    <Statement name="ExecuteFile" continueOnFail="false">
    <Parameter xsi:type="StringParameter" name="Path" value="#kaseyapath#\KASetup.exe"/>
    <Parameter xsi:type="StringParameter" name="Arguments" value="UNINSTALL /silent"/>
    <Parameter xsi:type="EnumParameter" name="ExecuteAccount" value="System"/>
    <Parameter xsi:type="BooleanParameter" name="WaitComplete" value="True"/>
    </Statement>
    </Body>
    </Procedure>

    </ScriptExport>

    Tu peux aussi changer le "ExecuteFile" par un WriteToText de la meme facon.