Table des matières
Le droit d’auteur de ce manuel est détenu par uib gmbh à Mainz, Allemagne.
Le droit d’auteur de la traduction francaise est détenu par OpenSides à Bruxelles, Belgique.
Ce manuel est publié sous licence creative commons
Attribution - ShareAlike (by-sa).

Vous trouverez ici la description allemande:
http://creativecommons.org/licenses/by-sa/3.0/de/
La licence allemande:
http://creativecommons.org/licenses/by-sa/3.0/de/legalcode
La description anglaise:
http://creativecommons.org/licenses/by-sa/3.0/
La licence anglaise:
http://creativecommons.org/licenses/by-sa/3.0/legalcode
La description française:
http://creativecommons.org/licenses/by-sa/3.0/deed.fr
La licence française:
http://creativecommons.org/licenses/by-sa/3.0/fr/legalcode
Le logiciel OPSI est dans la plupart de ces pièces open source.
Seulement les nouvelles pièces qui sont encore sous le cofinancement ne sont pas open source.
voir:
http://www.opsi.org/fr/projets-de-co-financement
Tout le reste du code source est publié sous licence GPLv3:

La licence GPLv3:
http://www.gnu.org/licenses/gpl.html
Le nom opsi est une marque déposée de uib gmbh.
Le logo de opsi est détenue par uib gmbh et peut être utilisé uniquement avec l’autorisation explicite.
%ProgramFilesDir%: c:\program files
%ProgramFiles32Dir%: c:\Program Files (x86) //depuis 4.10.8
%ProgramFiles64Dir%: c:\program files //depuis 4.10.8
%ProgramFilesSysnativeDir% : c:\program files //depuis 4.10.8
%Systemroot% : c:\windows
%System% : c:\windows\system32
%Systemdrive% : c:
%ProfileDir% : c:\Documents and Settings
%AllUsersProfileDir% ou %CommonProfileDir% : c:\Documents and Settings\All Users
%CommonStartMenuPath% ou %CommonStartmenuDir% : c:\Documents and Settings\All Users\Startmenu
%CommonAppdataDir% : c:\Documents and Settings\All Users\Application Data
%CommonDesktopDir%
%CommonStartupDir%
%CommonProgramsDir%
L’utilisateur est l’utilisateur connecté ou donnés par /usercontext.
%AppdataDir% ou %CurrentAppdataDir% : c:\Documents and Settings\%NOM_D’UTILISATEUR%\Application Data //depuis 4.10.8.13
%CurrentStartmenuDir% //depuis 4.10.8.13
%CurrentDesktopDir% //depuis 4.10.8.13
%CurrentStartupDir% //depuis 4.10.8.13
%CurrentProgramsDir% //depuis 4.10.8.13
%CurrentSendToDir% //depuis 4.10.8.13
%CurrentProfileDir% //depuis 4.11.2.1
%UserProfileDir% : c:\Documents and Settings\%NOM_D’UTILISATEUR%
ou
%CurrentProfileDir% // depuis 4.11.2.1
%ScriptPath% ou %ScriptDir%
%ScriptDrive%
%WinstDir%
%WinstVersion% //depuis 4.10.8.3
%Logfile%
%opsiScriptHelperPath% // depuis 4.11.3.2
%Host% : valeur de la variable d’environnement HOST.
%PCName%: valeur de la variable d’environnement PCNAME, ou si absent COMPUTERNAME.
%Username% : Nom de l’utilisateur actuel
%IPAddress% : peut-être l’adresse IP de la machine. Utilisez la fonction getMyIpByTarget() à la place.
[Initial]
[Actions]
[sub<identifiant>]
sub <nom du fichier>
[ProfileActions]
LogLevel (obsolete)
SetLogLevel = <nombre> ou SetLogLevel = <chaîne>
SetLogLevel = 7 SetLogLevel = "7"
ExitOnError = <valeur booléenne>
ScriptErrorMessages = <valeur booléenne>
FatalOnSyntaxError = <valeur booléenne> //depuis 4.11.3.2
Message <chaîne> ou Message = <constante chaîne>
ShowMessageFile <chaîne>
ShowBitMap [<nom du fichier>] [<sous titre>]
comment <chaîne> ou comment = <constante chaîne>
LogError <chaîne> ou LogError = <constante chaîne>
LogWarning <chaîne> ou LogWarning = <constante chaîne>
Pause <chaîne> ou Pause = <constante chaîne>
Stop <chaîne> ou stop = <constante chaîne>
include_insert <nom de fichier> // depuis 4.11.3
include_append <nom de fichier> // depuis 4.11.3
NormalizeWinst // depuis 4.11.3: (set normal window state)
IconizeWinst // (définir l'état de la fenêtre réduite)
RestoreWinst // (définir l'état de la fenêtre maximisé)
SetSkinDirectory <chemin vers skin.ini> // depuis 4.11.3.5
GetMsVersionInfo //Informations sur la version de Windows
GetSystemType //OS Architecture (32/64)
GetRegistrystringvalue ("[key] var")
GetRegistryStringValue32 ("[key] var") //depuis 4.10.8
GetRegistryStringValue64 ("[key] var") //depuis 4.10.8
GetRegistryStringValueSysNative ("[key] var") //depuis 4.10
GetvalueFromInifile ( fichier, section, clef, valeur par défaut )
GetValueFromInifile("mon_fichier","ma_section","ma_clef","")GetProductProperty (<Nom_de_la_proprietè>, <Valeur_par_défaut> )
trim(<chaîne>)
lower(<chaîne>)
unquote(<chaîne>,<chaîne-cote>) //depuis 4.11.2.1
stringReplace(<chaîne>, <ancien modèle>, <nouveau modèle>) //depuis 4.11.3
strLength(<chaîne>) //depuis 4.11.3
strPos(<chaîne>, <sous-chaîne>) //depuis 4.11.3
strPart(<chaîne>, <position de départ>, <nombre de caractères>) //depuis 4.11.3
getValue(<clef chaîne>, <liste de chaînes de hachage> )
getValueBySeparator(<clef chaîne>,<chaîne de séparation>,<liste de chaînes de hachage> ) //depuis 4.11.2.1
getLastExitCode
DemandLicenseKey( poolId [, productId [,windowsSoftwareId]] )
set $mykey$ = DemandLicenseKey ("", "office2007")FreeLicense (`poolId [, productId [,windowsSoftwareId]])`
set $result$ = FreeLicense("", "office2007")GetUserSID(<Nom d’utilisateur Windows>)
GetLoggedInUser //depuis 4.11.1.2
GetUsercontext //depuis 4.11.1.2
GetScriptMode valeurs possibles Machine,Login //depuis 4.11.2.1
saveVersionToProfile - sauvegarder productversion-packageversion dans le profil local //depuis 4.11.2.1
readVersionFromProfile : chaîne - lire productversion-packageversion depuis le profil local //depuis 4.11.2.1
scriptWasExecutedBefore : booléen - est vrai si productversion-packageversion sauvegardés et en cours d’exécution sont identiques //depuis 4.11.2.1
GetHostsName (<nom de l’hôte> )
GetHostsAddr (<adresse de l’hôte> )
GetMyIpByTarget(<adresse ip cible>) //depuis 4.11.3
ExtractFilePath (<chemin>)
calculate(<expression de chaîne arithmétique>) // depuis 4.11.3.5 : connaît: +-*/()
DecStrToHexStr ( <chaîne décimale>, <longueur hexadécimale>)
HexStrToDecStr (<chaîne hexadécimale>)
base64EncodeStr(<chaîne>)
base64DecodeStr(<chaîne>)
convert2Jsonstr(<chaîne>) //depuis 4.10.8.3
RandomStr
CompareDotSeparatedStrings(<chaîne1>, <chaîne2>)
CompareDotSeparatedNumbers(<chaîne1>, <chaîne2>)
EnvVar (<variable d’environnement>)
ParamStr
getDiffTimeSec (Temps en secondes depuis le dernier marktime) //depuis 4.11.3
SidToName(<sid connu>) //depuis 4.11.3: gives localized name of the sid
GetMyIpByTarget(<adresse ip cible>) //depuis 4.11.3.2
GetIpByName(<ip addr / ip name>) //depuis 4.11.3.2
splitString (<chaîne1>, <chaîne2>)
set $list1$ = splitString ("\\server\share\dir","\")splitStringOnWhiteSpace (<chaîne>)
loadTextFile (<nom de fichier>)
loadUnicodeTextFile (<nom de fichier>)
composeString (<liste de chaîne>, <lien>)
takeString (<Indice>, <liste>)
takeFirstStringContaining(<liste>,<chaîne de recherche>)
getOutStreamFromSection (<nom de section dos>)
getOutStreamFromSection ('DosBatch_try')getReturnListFromSection (<nom de section xml>)
getListContaining(<liste>,<chaîne de recherche>)
count (<liste>)
for %<identifiant>% in <liste> do <une déclaration | sous section>
for %s% in $list1$ do sub_test_string
GetProcessList //depuis 4.11.1.2; donne la liste des exename;pid;dom/user
getProductPropertyList(<nom de la propriété>,<valeur par défaut>) //depuis 4.11.3
getRegistryKeyList32(<clé de registre>) //depuis 4.11.3
getRegistryKeyList64(<clé de registre>) //depuis 4.11.3
getRegistryKeyListSysnative(<clé de registre>) //depuis 4.11.3
getRegistryVarList32(<clé de registre>) //depuis 4.11.3
getRegistryVarList64(<clé de registre>) //depuis 4.11.3
getRegistryVarListSysnative(<clé de registre>) //depuis 4.11.3
getProfilesDirList //depuis 4.11.3.2
GetLocaleInfoMap
GetMSVersionMap
getFileInfoMap( <nom de fichier> )
getProductMap // depuis 4.11.2.1
les clés sont: id, name, description, advice, productversion, packageversion, priority, installationstate, lastactionrequest, lastactionresult, installedversion, installedpackage, installedmodificationtime
getRegistryVarMap32(<regkey>) //depuis 4.11.3
getRegistryVarMap64(<regkey>) //depuis 4.11.3
getRegistryVarMapSysnative(<regkey>) //depuis 4.11.3
createStringList (<chaîne0>, <chaîne1> ,… )
set $list1$ = createStringList ('a','b')reverse (<liste>)
getSectionNames(<fichier-ini>)
retrieveSection (<nom de la section>)
getSubList (<indice de depart>, <indice de fin>, <liste>)
addtolist(<liste>,<chaîne>) //depuis 4.10.8
addListToList(<liste de destination>,<liste source>) //depuis 4.10.8
<chaîne1> = <chaîne2>
<boléen1> AND <boléen2>
<boléen1> OR <boléen2>
NOT(<boléen3>)
FileExists (<nom de fichier>)
FileExists32 (<nom de fichier>)
FileExists64 (<nom de fichier>)
FileExistsSysNative (<nom de fichier>)
LineExistsIn (<chaîne>, <nom de fichier>)
LineBeginning_ExistsIn (<chaîne>, <nom de fichier>)
XMLAddNamespace(<nom de fichier XML>, <nom de l’element XML>, <nom de l’espace XML>)
XMLRemoveNamespace(<nom de fichier XML>, <nom de l’element XML>, <nom de l’espace XML>)
HasMinimumSpace (<lettre de lecteur>, <capacitè>)
Exemple:
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
LogError "L'espace requis de 500 MB n'est pas disponible dans %SYSTEMDRIVE%"
isFatalError
endifopsiLicenseManagementEnabled
runningAsAdmin //depuis 4.11.1.1
isLoginScript //depuis 4.11.2.1
contains(<chaîne>, <sous-chaîne>) //depuis 4.11.3: vrai si <sous-chaîne> dans <chaîne>
isNumber(<chaîne>) //depuis 4.11.3: vrai si <chaîne> représente un nombre entier
Killtask <nom du processus>
requiredWinstVersion <opérateur relationnel> <version>
requiredWinstVersion >= "4.10"
includelog <nom de fichier> <taille de queue> //depuis 4.11.2.1
includelog "%Scriptpath%\test-files\10lines.txt" "5"
if - else - endif
Syntaxe:
if <condition>
;déclaration(s)
[else
;déclaration(s)]
endif
Exemple:
Set $NTVer$ = GetMsVersionInfo
if ( $NTVer$ >= "6" )
sub_install_win7
else
if ( $NTVer$ = "5.1" )
sub_install_winXP
else
stop "La version de l'OS n'est pas supporté"
endif
endifisFatalError
isFatalError <chaîne> //depuis 4.11.3.2
ExitWindows /Reboot
ExitWindows /ImmediateReboot
ExitWindows /ImmediateLogout
ExitWindows /ShutdownWanted
ExitWindows /RebootWanted (deprecated, acts like /Reboot)
sleepSeconds <nombre entier>
ChangeDirectory <répertoire> //depuis 4.11.2.6
Fonction: exécuter les programmes via l’API de Windows
[WinBatch<identifiant>]
Modificateur:
/LetThemGo
/WaitForProcessEnding "<program.exe>"
/TimeOutSeconds <secondes>
/WaitForWindowAppearing <titre de la fenêtre> (ne fonctionne pas avec les programmes 64 Bit)
/WaitForWindowVanish <titre de la fenêtre> (ne fonctionne pas avec les programmes 64 Bit)
/RunElevated // depuis 4.11.3: seulement >= NT6 ; pas d’accès réseau
/RunAsLoggedOnUser // depuis 4.11.3.5 ; fonctionne uniquement à l’intérieur de userLoginScripts
/32Bit //depuis 4.11.3.5
/64Bit //depuis 4.11.3.5
/SysNative //depuis 4.11.3.5
Fonction: exécuter la section via cmd.exe
[DosBatch<identifiant>] <paramètres optionnels> <winst <modifier>>
[DosInAnIcon<identifiant>] <paramètres optionnels> <winst <modifier>>
Modificateur: //depuis 4.11.1.1
/32Bit
/64Bit
/SysNative
Les modificateurs doivent être séparé des paramètres par winst.
DosInAnIcon_do_64bit_stuff winst /64Bit
Commandes: voir le manuel
Fonction: Exécuter la section via n’importe quel interpréteur
[ExecWith<identifiant>] <chemin de l’interpréteur>
Modificateur:
/LetThemGo
/EscapeStrings
/32Bit //depuis 4.11.3.5
/64Bit //depuis 4.11.3.5
/SysNative //depuis 4.11.3.5
Les modificateurs doivent être séparées des paramètres par le mot winst. L’exemple suivant appelle la version 64 bits de powershell.exe.
ExecWith_do_64bit_stuff "%System%\WindowsPowerShell\v1.0\powershell.exe" winst /64Bit
Commandes: voir le manuel
Fonction: Operations sur les fichiers
[Files<identifiant>]
Modificateur:
/AllNTUserProfiles
/AllNTUserSendTo
/32Bit //depuis 4.10.8
/64Bit //depuis 4.10.8
/SysNative //depuis 4.10.8
Commandes:
checkTargetPath = <répertoire de destination>
copy [Options] <fichier(s) source> <répertoire de destination>
quelques options:
-s récursif
-V contrôle de version contre répertoire cible
-v contrôle de version contre répertoire cible, %systemroot% et %system% (ne l’utilisez pas)
-c continuer sans redémarrer, même si cela est nécessaire
-d vérification de la date
-u mise à jour
-x extraire
-w weak (ne pas écraser les fichiers protégés)
-n ne pas écraser
-r copier attribut lecture seule
delete [Options] <chemin[/masque]]
certaines options: -s récursive -f force
Exemple (ne pas oublier la barre oblique inverse):
delete -sf c:\supprimer_ce_répertoire\
del [Options] <chemin[/masque]] //depuis 4.11.2.1
Fonctionne comme delete mais sur
del -s -f c:\not-exists
si c:\not-exists n’existe pas il ne cherche pas c:\ pour not-exits
Exemple (ne pas oublier la barre oblique inverse):
del -sf c:\supprimer_ce_répertoire
Fonction: modifier le registre
Méthode standard:
[Registry<identifiant>]
travaille en collaboration avec la section spécifiée.
Autre méthode:
Registry loadUnicodeTextFile(<.fichier reg>) /regedit
importer le spécifiée <.fichier reg>.
Autre méthode (obsolete):
Registry loadUnicodeTextFile(<.addreg file>) /addreg
importer le spécifiée <.addreg file>.
Modificateur:
/AllNTUserDats
/32Bit //depuis 4.10.8
/64Bit //depuis 4.10.8
/SysNative //depuis 4.10.8
Commandes:
OpenKey <Clef>
openkey [HKLM\Software\opsi.org]
Set <nom de variable> = <type de registre>:<valeur>
Add <nom de variable> = <type de registre>:<valeur>
Exemples de types de registre:
set "var1" = "my string" set "var2" = REG_SZ:"my string" set "var3" = REG_EXPAND_SZ:"%ProgramFiles%" set "var4" = REG_DWORD:123 (Decimal) set "var5" = REG_BINARY:00 01 02 0F 10 set "var6" = REG_MULTI_SZ:"A|BC|de"
Supp <nom de variable> <list char> <supplément>
supp "Path" ; "C:\utils; %JAVABIN%"
GetMultiSZFromFile <nom de variable> <nom de fichier>
SaveValueToFile <nom de variable> <nom de fichier>
DeleteVar <nom de variable>
DeleteKey <clef de registre> (ne fonctionne pas avec /AllNTUserDats)
Fonction: modifier fichiers Ini
[Patches<identifiant>] <nom de fichier>
Modificateur:
/AllNTUserProfiles //depuis 4.11.3
Commandes:
add [<nom de section>] <variable1> = <valeur1>
set [<nom de section>]<variable1> = <valeur1>
addnew [<nom de section>]<variable1> = <valeur1>
change [<nom de section>]<variable1> = <valeur1>
del [<nom de section>] <variable1> = <valeur1>
del [<nom de section>] <variable1>
delsec [<nom de section>]
replace <variable1>=<valeur1> <variable2>=<valeur2>
Fonction: modifier fichier de texte
[PatchTextFile<identifier>] <nom du fichier>
Modificateur:
/AllNTUserProfiles //depuis 4.11.3.4
Commandes:
Set_Mozilla_Pref ("<type de préférence>", "<clé de préférence>", "<valeur de préférence>")
les types de préférences sont généralement:
pref, user_pref, lock_pref
AddStringListElement_To_Mozilla_Pref ("<type de préférence>", "<clé de préférence>", "<ajouter la valeur>")
Set_Netscape_User_Pref ("<clef>", "<valeur>") (obsolete)
AddstringListElement_To_Netscape_User_Pref (obsolete)
FindLine <chaîne de recherche>
FindLine_StartingWith <chaîne de recherche>
FindLine_Containing <chaîne de recherche>
GoToTop
AdvanceLine [<nombre de lignes>]
GoToBottom
DeleteTheLine
AddLine_ <ligne> ou Add_Line_ <ligne>
InsertLine <ligne> ou Insert_Line_ <ligne>
AppendLine <ligne> ou Append_Line <ligne>
Append_File <nom du fichier>
Subtract_File <nom du fichier>
SaveToFile <nom du fichier>
Sorted
Fonction: Menu Démarrer + les icônes du bureau
[LinkFolder<identifiant>]
Commandes:
set_basefolder <répertoire systeme>
set_subfolder <chemin du répertoire>
set_link name: <nom du lien> target: <chemin et nom du programme> parameters: [arguments de la ligne de commande] working_dir: [répertoire de travaille] icon_file: [chemin et nom du fichier icone, défaut=target] icon_index: [nombre d'icône dans le dossier des icônes, défaut=0] end_link
delete_element <nom du lien>
delete_subfolder <chemin du répertoire>
Les dossiers prédéfinis du système virtuel qui peuvent être utilisés sont:
desktop, sendto, startmenu, startup, programs, desktopdirectory,
common_startmenu, common_programs, common_startup, common_desktopdirectory
Exemple
set_basefolder common_desktopdirectory set_subfolder "" set_link name: opsi-winst target: "%ProgramFiles32Dir%\opsi.org\opsi-client-agent\opsi-winst\winst32.exe" end_link
Les dossiers prédéfinis de systèmes virtuels:
desktop, sendto, startmenu, startup, programs, desktopdirectory
pointent vers les dossiers de l’utilisateur qui exécute le script.
Si vous l’utilisez dans un userLoginScript avec l’extension opsi Gestion des profils utilisateur ces dossiers virtuels pointer vers le dossier de l’utilisateur qui vient de se connecter.
Fonction: service d’accès opsi
[OpsiServiceCall<identifiant>]
Commandes: voir le manuel
Fonction: Éditer des fichiers hôtes
[PatchHosts<identifiant>]
Commandes:
setaddr <nom d’hôte> <adresse IP>
setname <adresse IP> <nom d’hôte>
setalias <nom d’hôte> <alias>
setalias <adresse IP> <alias>
delalias <nom d’hôte> <alias>
delalias <adresse IP> <alias>
delhost <nom d’hôte>
delhost <adresse IP>
setComment <identifiant> <commentaire>
Fonction: Exécutez la section via l’interpréteur python
[ExecPython<identifier>]
Commandes: voir le manuel