opsi-winst Manual (4.11.3)



Documents pareils
WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Guide de l utilisateur Mikogo Version Windows

Déploiement de SAS Foundation

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Opsi Notes de version

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

Préconisations Techniques & Installation de Gestimum ERP

Setting Up PC MACLAN File Server

Manuel d installation De la Cryptolib CPS Dans un environnement client/serveur TSE/CITRIX

TP 1. Prise en main du langage Python

Installation du transfert de fichier sécurisé sur le serveur orphanet

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Créer et partager des fichiers

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

FileMaker Server 14. Guide de démarrage

Tropimed Guide d'installation

GPI Gestion pédagogique intégrée

!!! Archipad version 1.4. Manuel de Référence

OPTENET DCAgent Manuel d'utilisateur

A. Architecture du serveur Tomcat 6

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11

MANUEL DE L UTILISATEUR

L annuaire et le Service DNS

SQL Data Export for PS/PSS

INSTALLATION Advantage Database Server

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

STAGE IREM 0- Premiers pas en Python

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Communication technique TC1552 Ed 01 Date: 22/11/2011

Préparation à l installation d Active Directory

esms Desktop Guide de l utilisateur

Tsoft et Groupe Eyrolles, 2005, ISBN :

Retrospect 7.7 Addendum au Guide d'utilisation

Procédure d installation d AMESim 4.3.0

Installation de GFI Network Server Monitor

Présentation de l outil AppliDis ESX Console Viewer

Guide de mise à jour BiBOARD

Environnements informatiques

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Formation. Module WEB 4.1. Support de cours

Installation Windows 2000 Server

Tutorial pour l installation et l utilisation de CREO et de Windchill

Manuel d'installation de GESLAB Client Lourd

User Documentation. Documentation utilisateur. version 0.2b

Manuel de l utilisateur de l'application en ligne Données Historiques Capelo 01/07/2013

Mise à jour d une édition Yourcegid V9

Dans cette Unité, nous allons examiner

Administration de systèmes

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

GUIDE Excel (version débutante) Version 2013

Open Source Job Scheduler. Installation(s)

Smart Pix SOFTWARE. Manuel d utilisation

Utilisation du plugin AppliDis SLB (Smart Load Balancing)

Nokia Internet Modem Guide de l utilisateur

Saisie sur un ordinateur OS/390 Ici sur jedi.informatik.uni-leipzig.de ou

Démarrer et quitter... 13

Guide Numériser vers FTP

Progiciel pour la configuration et la visualisation de régulateurs

Objet du document. Version document : 1.00

Asset Management Software Client Module. Manuel d utilisation

CTIconnect PRO. Guide Rapide

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

PROCÉDURE D AIDE AU PARAMÉTRAGE

Mise en oeuvre d un Serveur de CD AXIS StorPoint

Installation ou mise à jour du logiciel système Fiery

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

Gestion des journaux

Créer le schéma relationnel d une base de données ACCESS

Manuel Utilisateur Version 1.6 Décembre 2001

Manuel utilisateur (manuel_utilisateur_version pdf) SOMMAIRE

Installer Enterprise Miner 5.1 en SAS environnement Windows

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

MANUEL DU SERVICE CENTER

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

Smart Pix SOFTWARE. Manuel d utilisation

Windows Server 2008 R2

Manuel du logiciel PrestaTest.

Groupes et utilisateurs locaux avec Windows XP

Guide utilisateur XPAccess. Version Manuel de référence 1/34

Table des matières 1. Installation de BOB BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10

Déploiement OOo en environnement Windows Terminal Server

MANUEL D INSTALLATION Sous WINDOWS

GUIDE DE L UTILISATEUR

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Manuel BlueFolder ADMINISTRATION

Olivier Mondet

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

MANUEL D INSTALLATION

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Windows 2000 Server Active Directory

Introduction à Windows Script Host DescoDev

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

TP1 - Prise en main de l environnement Unix.

Transcription:

opsi-winst Manual (4.11.3) Revision: 11.07.2012 OpenSides sprl Rue des Palais 44, bte 33 1030 Brussels Tel.:+32 2 880 97 40 www.opensides.be opsi@opensides.be

opsi-winst Manual (4.11.3) i Table des matières 1 Droit d auteur 1 2 Présentation 2 3 Démarrage et options de la ligne de commande 3 3.1 Chemins des journaux système........................................ 4 4 Configurations supplémentaires 5 4.1 Journalisation centrale des messages d erreur................................ 5 4.2 Thèmes opsi-winst............................................... 6 5 Le script opsi-winst 7 5.1 Un Exemple................................................... 7 5.2 Sous-programmes primaires et secondaires d un script opsi-winst..................... 8 5.3 Expressions de chaîne dans un script opsi-winst............................... 9 6 Définition et utilisation de variables et constantes dans un script opsi-winst 10 6.1 Général..................................................... 10 6.2 Constantes Global Text............................................ 11 6.2.1 Utilisation................................................ 11 6.2.2 Exemple................................................. 11 6.2.3 System paths.............................................. 11 6.2.3.1 Répertoires du système de base............................... 11 6.2.3.2 Répertoires communs (AllUsers).............................. 11 6.2.3.3 Répertoires utilisateur courant (connecté ou contexte de l utilisateur)......... 12 6.2.3.4 Répertoire constantes /AllNtUserProfiles......................... 12 6.2.4 Chemins et répertoires de opsi-winst................................. 12 6.2.5 Information réseau........................................... 13 6.2.6 Les données, pour et à partir, du service opsi............................ 13 6.3 Variables chaîne (ou texte).......................................... 14 6.3.1 Déclaration............................................... 14 6.3.2 Affectation de valeur.......................................... 14 6.3.3 Utilisation de variables dans les expressions de chaîne....................... 15 6.3.4 Sections secondaire contre primaires................................. 15 6.4 Variables liste de chaînes............................................ 15

opsi-winst Manual (4.11.3) ii 7 Syntaxe et signification des sections primaires d une script opsi-winst 17 7.1 Sections primaires............................................... 17 7.2 Paramétrage de ospi-winst........................................... 18 7.2.1 Exemple................................................. 18 7.2.2 Spécification du niveau de journalisation............................... 18 7.2.3 Version requise de opsi-winst..................................... 19 7.2.4 Réaction sur les erreurs........................................ 19 7.2.5 Rester au-dessus............................................ 20 7.3 Montrer le mode fenêtre............................................ 20 7.4 Expressions de chaîne, Valeurs de chaîne, et Fonctions de chaîne..................... 20 7.4.1 Valeur de chaîne élémentaires..................................... 20 7.4.2 Chaînes dans des chaînes (valeur de chaîne imbriquées)...................... 21 7.4.3 Concaténation de chaînes....................................... 21 7.4.4 Variables chaîne............................................ 21 7.4.5 Fonctions de chaîne qui renvoient le type de système d exploitation................ 22 7.4.6 Fonctions de chaîne pour la récupération de l environnement ou de données en ligne de commande 22 7.4.7 Lire des valeurs du registre Windows et transformer les valeurs en format Registre....... 23 7.4.8 Lecture des valeurs de propriété à partir des fichiers ini...................... 24 7.4.9 Lecture des Propriétés du produit.................................. 24 7.4.10 Récupération de données à partir de etc/hosts........................... 25 7.4.11 Traitement des chaîne......................................... 25 7.4.12 Autres fonctions de chaîne....................................... 29 7.4.13 (Chaîne-) Fonctions de gestion des licences............................. 36 7.4.14 Récupération Infos erreur des appels de service........................... 37 7.5 Fonctions de liste de chaînes et Traitement de liste de chaînes....................... 37 7.5.1 Informations sur Maps......................................... 38 7.5.2 Produire des listes de chaînes à partir des chaînes.......................... 43 7.5.3 Chargement des lignes d un fichier texte dans une liste de chaînes................. 44 7.5.4 Valeurs de chaîne simple générés à partir des listes de chaînes................... 44 7.5.5 Produire des listes de chaîne à partir des sections opsi-winst.................... 45 7.6 Les listes de chaînes à partir du Registre................................... 45 7.6.1 Les listes de chaînes provenant des Propriétés du produit..................... 47 7.6.2 Transformer les listes de chaînes................................... 48 7.6.3 Autres Listes de chaînes........................................ 48 7.6.4 Itération à travers les listes de chaînes................................ 49 7.7 Calcul avec des nombres............................................ 50 7.8 Commandes spéciales............................................. 53 7.9 Commandes pour contrôler la journalisation................................. 53 7.10 Commandes d information sur l utilisateur et l interaction utilisateur................... 54

opsi-winst Manual (4.11.3) iii 7.11 Commandes pour userloginscripts / Support de profil itinérant...................... 55 7.12 Instructions conditionnelles (déclarations if)................................. 55 7.12.1 Syntaxe générale............................................ 56 7.12.2 Les expressions booléennes...................................... 56 7.12.3 Commandes Include.......................................... 58 7.12.3.1 Commandes Include: Syntaxe................................ 58 7.12.3.2 Commandes Include: Library................................ 59 7.13 Appels de Sous-programme.......................................... 61 7.13.1 Syntaxe de procédure d appel..................................... 62 7.14 Contrôle du redémarrage............................................ 62 7.15 Garder la trace des installations qui ont échoué............................... 64 8 Sections Secondaires 66 8.1 Les sections Files (Fichiers).......................................... 66 8.1.1 Exemple................................................. 66 8.1.2 Modificateur.............................................. 66 8.1.3 Commandes............................................... 67 8.2 Sections Patches................................................ 69 8.2.1 Exemple................................................. 69 8.2.2 Paramètre d appelle.......................................... 70 8.2.3 Commandes............................................... 70 8.3 Sections PatchHosts.............................................. 71 8.4 Sections IdapiConfig.............................................. 72 8.5 Sections PatchTextFile............................................. 73 8.5.1 Paramètre................................................ 73 8.5.2 Commandes............................................... 73 8.5.3 Exemples................................................ 74 8.6 Sections LinkFolder............................................... 74 8.6.1 Exemples................................................ 76 8.7 Sections XMLPatch.............................................. 77 8.7.1 Paramètre................................................ 77 8.7.2 Structure d un Document XML.................................... 77 8.7.3 Options pour la sélection d un ensemble d éléments......................... 79 8.7.4 Actions Patch.............................................. 80 8.7.5 Retour des listes, pour l appelant................................... 81 8.7.6 Exemples................................................ 81 8.8 Sections ProgmanGroups........................................... 81 8.9 Sections WinBatch............................................... 81 8.9.1 Paramètre d appel (Modificateur)................................... 81

opsi-winst Manual (4.11.3) iv 8.9.2 Exemples................................................ 85 8.10 Sections DOSBatch/DosInAnIcon (ShellBatch/ShellInAnIcon)....................... 85 8.10.1 Paramètre................................................ 85 8.10.2 Capturer la sortie........................................... 86 8.10.3 Exemples................................................ 86 8.11 Sections Registry................................................ 86 8.11.1 Exemples................................................ 87 8.11.2 Paramètres d appel........................................... 87 8.11.3 Commandes............................................... 87 8.11.4 Sections Registry pour Patcher All NTUser.dat........................... 90 8.11.5 Sections Registry dans le format Regedit............................... 90 8.11.6 Sections Registry dans le format AddReg.............................. 91 8.12 Sections OpsiServiceCall............................................ 91 8.12.1 Paramètres d appel........................................... 92 8.12.2 Section Format............................................. 92 8.12.3 Exemples................................................ 93 8.13 Sections ExecPython.............................................. 93 8.13.1 Imbrication d un script Python avec un script opsi-winst...................... 94 8.13.2 Exemples................................................ 94 8.14 Sections ExecWith............................................... 95 8.14.1 Paramètres d appel (Modificateur).................................. 95 8.14.2 Autres exemples............................................ 96 8.15 Sections LDAPsearch.............................................. 96 8.15.1 LDAP Protocole, Service, Annuaire................................ 96 8.15.2 Paramètres d appel LDAPsearch................................... 98 8.15.3 Comment affiner la recherche..................................... 99 8.15.4 Syntaxe d une Section LDAPsearch.................................. 100 8.15.5 Exemples................................................ 100 9 Support 64 Bit 103 10 Cook Book 107 10.1 9.1. Supprimer un fichier dans tous les sous-répertoires........................... 107 10.2 Vérifier si un service spécifique est en marche................................ 108 10.3 Script pour les installations dans le contexte d un Administrateur local.................. 109 10.4 Fichier XML Application de correctifs: Réglage du chemin du modèle pour OpenOffice.org 2...... 116 10.5 Récupération des valeurs à partir d un fichier XML............................. 117 10.6 Insertion d une définition d espace de noms dans un fichier XML..................... 118 11 Messages d erreur spéciales 120

opsi-winst Manual (4.11.3) 1 / 120 Chapitre 1 Droit d auteur 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.

opsi-winst Manual (4.11.3) 2 / 120 Chapitre 2 Présentation Le programme open source opsi-winst sert dans le contexte de OPSI serveur d intégration de pc (cf. www.opsi.org) comme rôle central pour initier et effectuer l installation automatique du logiciel. Il peut également être utilisé seul comme un outil pour les programmes d installation pour n importe quel logiciel. opsi-winst est fondamentalement un interprète pour un particulier, assez simple, langage de script qui peut être utilisé pour exprimer tous les éléments pertinents d une installation de logiciel. Une installation du logiciel qui est décrit par un script opsi-winst et exécuté par l exécution du script a plusieurs avantages par rapport aux installations qui sont gérées par un tas de commandes Shell (par exemple copie etc): opsi-winst montre dans le fichier journal très soigneusement toutes les opérations du processus d installation. L équipe de support peut vérifier les fichiers journal, et peut facilement détecter quand des erreurs sont survenues ou d autres circonstances problématiques. Les actions de copie peut être configuré avec une grande variété d options si les fichiers existants doivent être écrasés Surtout, il peut être configuré que les fichiers sont copiés selon leur version interne. Il y a différents modes pour écrire dans le registre Windows: écraser les valeurs existantes écrire seulement quand aucune valeur existe ajouter une valeur à une valeur existante. Le registre de Windows peut être patché pour tous les utilisateurs existant sur un poste de travail (y compris l utilisateur par défaut, qui est utilisé comme prototype pour d autres utilisateurs). Il y a une syntaxe sophistiquée pour un patch intégré des fichiers de configuration XML.

opsi-winst Manual (4.11.3) 3 / 120 Chapitre 3 Démarrage et options de la ligne de commande Depuis la version 4.11.3, le programme opsi-winst contient un manifeste avec l énoncé suivant: <requestedexecutionlevel level="highestavailable" />. Cela signifie que si opsi-winst est appelée sur un OS NT6 par un administrateur, il fonctionnera comme un processus élevé. Si opsi-winst est appelée avec des privilèges d utilisateur normal, il s exécutera avec les privilèges de cet utilisateur. opsi-winst peut être démarré avec différents ensembles de paramètres dépendant du contexte et du but de l utilisation. Il y a les suivants schémas syntaxique: (1) Montrer l utilisation (aide): opsi-winst /? opsi-winst /h[elp] (2 ) Exécuter un script opsi-winst <fichier de script> [/logfile <fichier journal> ] [/batch /histolist <Chemin du fichier de config de opsi-winst>] [/usercontext <[domaine\]nom d utilisateur> ] [/parameter <chaîne de paramètres>] (3) Exécuter une liste de scripts (séparées par des virgules) un par un: opsi-winst /scriptfile <fichier de script> [;<fichier de script>]* [ /logfile <fichier journal> ] [/batch /silent ] [/usercontext <[domaine\]nom d utilisateur> ] [/parameter <chaîne de paramètres>] 4) Lire la configuration du PC à partir du service OPSI et agir en conséquence, depuis opsi-winst 4.11.2 opsi-winst /opsiservice <URL du service OPSI> /clientid <nom du client> /username <nom d utilisateur> /password <mot de passe> [/sessionid <id de la session>] [/usercontext <[domaine\]nom d utilisateur>] [/allloginscripts /loginscripts] [/silent] Quelques explications:

opsi-winst Manual (4.11.3) 4 / 120 Le nom par défaut du fichier de log est c:\tmp\instlog.txt La chaîne de paramètres, qui se caractérise par l option /parameter, est accessible pour chaque script appelé de opsi-winst (via la fonction de chaîne ParamStr). Explications pour (2) et (3) : Si l option /batch est utilisé, alors opsi-winst montre seulement sa "batch surface" n offrant aucune dialogues utilisateur. Par l option /silent même la "batch surface" est supprimée. Sans l aide de l option /batch nous entrons dans le mode interactif où le fichier de script et le fichier journal peuvent être choisis de manière interactive (principalement pour des fins de test). Le paramètre winstconfigfilepath qui est désigné par /histofile se réfère à un fichier au format ini qui contient (en mode interactif) les dernières noms de fichier de script utilisé. La surface de dialogue présente une zone de liste qui affiche ces noms de fichiers pour choisir le fichier suivant à interpréter. Si winstconfigfilepath se termine par "\" il est supposé être un nom de répertoire et WINST.INI sert de nom de fichier. Explications pour (4): La valeur par défaut pour clientid est le nom d ordinateur complet Quand il est appelé avec l option /allloginscripts ou /loginscripts opsi-winst fait les configurations pour l utilisateur de la session courante (particulièrement dans un contexte de profils Itinérants). C est une option en co-financement - vous devez l acheter pour pouvoir l utiliser. Regardez le manuel d opsi pôur plus d information sur la Gestion des profils utilisateur. Avec l option /silent la surface "batch" est supprimée. Le mode non interactif est implicite. 3.1 Chemins des journaux système Par défaut les journaux système sont écrits dans le répertoire c:\tmp qui opsi-winst essaie de créer. Si opsi-winst n a pas accès à ce répertoire, il utilise le répertoire temporaire de l utilisateur. Le nom du journal système par défaut est instlog.txt. Le nom du fichier journal et l emplacement seront écrasées par l option spécifiques en ligne de commande. Dans le cas, que opsi-winst exécute un script dans le mode /batch et avec un contexte utilisateur (et de travail) spécifié, le chemin d enregistrement par défaut est opsi/tmp dans le répertoire ApplicationData de l utilisateur. Ce sera écrasé par un chemin de journal donné explicitement. En plus, opsi-winst utilise le répertoire de journalisation pour la sauvegarde de certains fichiers temporaires.

opsi-winst Manual (4.11.3) 5 / 120 Chapitre 4 Configurations supplémentaires 4.1 Journalisation centrale des messages d erreur Si vous le souhaitez, opsi-winst écrit les données d erreur dans un second fichier sur un lecteur réseau ou les envoie à un démon syslog. La fonction peut être configuré dans le registre Windows: Dans HKEY_LOCAL_MACHINE, nous avons, dans une installation standard, la clé \SOFTWARE\opsi.org. Nous pouvons créer une sous-clé syslogd avec une variable remoteerrorlogging. Sa valeur détermine si, et si oui par quelle méthode, une journalisation centrale doit avoir lieu. En outre, dans HKEY_LOCAL_MACHINE\SOFTWARE\opsi.org\syslogd nous devons observer trois variables: Si remoteerrorlogging a la valeur 0, aucun log supplémentaires centrale a lieu (par défaut). Si remoteerrorlogging a la valeur 2, les rapports d erreur sont envoyés à syslog démon. Le nom d hôte du démon est lu dans la variable sysloghost (défaut localhost), le numéro du canal syslog peut être configuré à partir de la valeur de la variable syslogfacility (par défaut 18, qui est local2). Le tableau suivant montre les valeurs possibles: ID_SYSLOG_FACILITY_KERNEL = 0; // messages du kernel ID_SYSLOG_FACILITY_USER = 1; // messages du niveau utilisateur ID_SYSLOG_FACILITY_MAIL = 2; // système de messagerie ID_SYSLOG_FACILITY_SYS_DAEMON = 3; // démons système ID_SYSLOG_FACILITY_SECURITY1 = 4; // sécurité / messages d autorisation (1) ID_SYSLOG_FACILITY_INTERNAL = 5; // messages générés en interne par syslogd ID_SYSLOG_FACILITY_LPR = 6; // imprimante système ID_SYSLOG_FACILITY_NNTP = 7; // sous-système de nouvelles du réseau ID_SYSLOG_FACILITY_UUCP = 8; // UUCP sous-système ID_SYSLOG_FACILITY_CLOCK1 = 9; // démon horloge (1) ID_SYSLOG_FACILITY_SECURITY2 = 10; // sécurité / messages d autorisation (2) ID_SYSLOG_FACILITY_FTP = 11; // démon FTP ID_SYSLOG_FACILITY_NTP = 12; // sous-système NTP ID_SYSLOG_FACILITY_AUDIT = 13; // journal d audit ID_SYSLOG_FACILITY_ALERT = 14; // journal d alerte ID_SYSLOG_FACILITY_CLOCK2 = 15; // démon horloge (2) ID_SYSLOG_FACILITY_LOCAL0 = 16; // utilisation locale 0 (local0) ID_SYSLOG_FACILITY_LOCAL1 = 17; // utilisation locale 1 (local1) ID_SYSLOG_FACILITY_LOCAL2 = 18; // utilisation locale 2 (local2) ID_SYSLOG_FACILITY_LOCAL3 = 19; // utilisation locale 3 (local3) ID_SYSLOG_FACILITY_LOCAL4 = 20; // utilisation locale 4 (local4) ID_SYSLOG_FACILITY_LOCAL5 = 21; // utilisation locale 5 (local5) ID_SYSLOG_FACILITY_LOCAL6 = 22; // utilisation locale 6 (local6) ID_SYSLOG_FACILITY_LOCAL7 = 23; // utilisation locale 7 (local7)

opsi-winst Manual (4.11.3) 6 / 120 4.2 Thèmes opsi-winst Depuis la version 3.6 opsi-winst l interface peut être personnalisée. Les éléments de personnalisation sont situés dans un sous-répertoire winstskin du répertoire opsi-winst. Le fichier de configuration que vous pouvez éditer est skin.ini. Depuis la version 4.11.3.5 opsi-winst recherche le répertoire skin dans l ordre suivant (le premier répertoire avec skin.ini trouvé l emporte): 1. %WinstDir%\..\custom\winstskin 2. %WinstDir%\winstskin Avec la commande SetSkinDirectory le répertoire skin à utiliser peut être défini dans le script. Si le chemin d accès spécifié est vide ou non valide, le chemin par défaut sera utilisé. Exemple: SetSkinDirectory "%ScriptPath%\testskin" sleepseconds 1 SetSkinDirectory ""

opsi-winst Manual (4.11.3) 7 / 120 Chapitre 5 Le script opsi-winst En principe: opsi-winst est un interprète pour un particulier, facile à utiliser, langage de script qui est adapté pour les besoins des installations de logiciels. Un script devrait être une description intégrée, et un moyen de contrôle, pour l installation d un logiciel. La section suivante esquisses de la structure d un script opsi-winst. Le but est d identifier les signets d un script: de quelle manière nous devons étudier la question pour comprendre son traitement. Tous les éléments sont décrits plus en détail dans la section plus loin. Le but sera alors de montrer comment les scripts peuvent être modifiés ou développés. 5.1 Un Exemple Les scripts opsi-winst sont à peu près issus des fichiers.ini. Ils sont composés de sections, qui sont marquées par un titre (le nom de section), qui est écrite entre parenthèses []. Schématiquement un script opsi-winst ressemble à celui (ici avec une vérification de quel système d exploitation est installé): [Actions] Message "Installation de Mozilla" SetLogLevel=6 ;which Windows-Version? DefVar $MSVersion$ Set $MSVersion$ = GetMsVersionInfo if ($MSVersion$ >= "6") sub_install_win7 if ( $MSVersion$ = "5.1" ) sub_install_winxp stop "ce n est pas une version d OS supporté" [sub_install_win7] Files_copy_win7 WinBatch_Setup

opsi-winst Manual (4.11.3) 8 / 120 [sub_install_winxp] Files_copy_XP WinBatch_SetupXP [Files_copy_win7] copy "%scriptpath%\files_win7\*.*" "c:\temp\installation" [Files_copy_winxp] copy "%scriptpath%\files_winxp\*.*" "c:\temp\installation" [WinBatch_Setup] c:\temp\installation\setup.exe [WinBatch_SetupXP] c:\temp\installation\install.exe Comment pouvons-nous lire les sections de ce script? 5.2 Sous-programmes primaires et secondaires d un script opsi-winst Le script dans son ensemble constitue un programme, une instruction pour une procédure d installation. Ainsi chacune de ses sections peut être vu comme un sous-programme (ou "procedure" ou "method"). Le script est une collection de sous-programmes. Le lecteur humain ainsi qu un logiciel interprète, doivent savoir à partir de quel élément de cette collection doit commencer la lecture. L exécution d un script opsi-winst commence sur les sections [Initial] et [Actions] (dans cet ordre). Toutes les autres sections sont appelés comme sous-programmes de ces deux sections. Ce processus n est récursif que pour les soussections: Sub-sections ont la même syntaxe que les sections Initial et Actions et peuvent contenir des appels à des sous-routines supplémentaires. Note Si un script est executé comme userloginscript et contient une section [ProfileActions], l interprétation du script démarrera à la section ProfleActions. Cela donne la raison de faire la distinction entre les sous-programmes primaire et secondaire: Les sections de contrôle primaire ou générale comprennent la section optionnel Initial (par convention, le début du script), la section Actions (doit suivre la section Initial), et Sub sections (de 0 à n sous-programmes appelés par la section Actions qui sont des extensions syntaxiques et logiques de la section d appel). la section ProfileActions, qui sera interpretée de differents façons selon le mode du script (Machine/Login). La logique procédurale du script est déterminé par la séquence d appels dans ces sections. Les sections secondaires ou spécifiques peuvent être appelés depuis n importe quelle section primaire, mais ont une syntaxe différente. La syntaxe est dérivé des exigences fonctionnelles et des conditions de la bibliothèque et des conventions pour les fins spécifiques. Par conséquent, aucune autre section peut être appelé à partir d une section secondaire. En ce moment il y a les types suivants de sections secondaires: Files sections, WinBatch sections,

opsi-winst Manual (4.11.3) 9 / 120 DosBatch/DosInAnIcon/ShellInAnIcon sections, Registry sections Patches sections, PatchHosts sections, PatchTextFile sections, XMLPatch sections, LinkFolder sections, opsiservicecall sections, ExecPython sections, ExecWith sections, LDAPsearch sections. Sens et syntaxe des types de sections différentes sont traitées dans Chapitre 7 et Chapitre 8. 5.3 Expressions de chaîne dans un script opsi-winst Les valeurs textuels (valeurs de chaîne) dans les sections primaires peuvent être donnés de façon différente: La valeur peut être directement cités, surtout par écrit en marques de citation (entre double). Exemples: "Installation de Mozilla" "n:\home\nom d utilisateur" La valeur peut être donnée par une variable chaîne ou une constante chaîne, qui "contient" la valeur: La variable $MsVersion$ peut se porter "6.1" si elle a été affectée avant avec cette valeur. Une fonction récupère ou calcule une valeur par une procédure interne. Par exemple: EnvVar ("Username") récupère une valeur de l environnement système, dans ce cas, la valeur de la variable d environnement Username. Les fonctions peuvent avoir n importe quel nombre de paramètres, y compris le zéro: GetMsVersionInfo Sur un système Win7, cet appel de fonction donne la valeur "6.1" (non pas comme une variable, cette valeur doit être produite à chaque appel à nouveau). Une valeur peut être construit par une expression adjuvant, où les valeurs de chaîne et d expressions partielles sont concaténés - théoriquement "plus" peut être vu comme une fonction de deux paramètres: $Home$ + "\mail" (Plus sur ce sujet dans Section 7.4) Il n y a pas de façon analogue d utiliser des expressions de chaîne dans les sections secondaires. Ils y suivent une syntaxe de domaine spécifique. Par exemple pour les commandes de copie, similaire à la commande de copie en ligne de Windows. Jusqu à ce moment, il n y a pas de syntaxe d échappement mis en œuvre pour le transport de la logique de section primaire vers une section secondaire. La seule façon pour le transport de valeurs de chaîne dans les sections secondaires est l utilisation des noms des variables et des constantes comme conteneur de valeur dans ces sections. Jetons un coup d œil aux variables et aux constantes d un script de opsi-winst:

opsi-winst Manual (4.11.3) 10 / 120 Chapitre 6 Définition et utilisation de variables et constantes dans un script opsi-winst 6.1 Général Dans un script opsi-winst, variables et constantes apparaissent comme "mots", qui sont interprétés par opsi-winst et "contiennent" des valeurs. "Mots" sont des séquences de caractères comprenant des lettres, des chiffres et certains caractères spéciaux (en particulier ".", "-", "_", "$", "%"), mais pas des blancs, pas de crochets, parenthèses, ou les signes opérateur ("+"). Les variables et constantes opsi-winst ne sont pas sensibles à la casse. Il existe les types suivants de variables ou de constantes: Constantes texte global, constantes courtes, contiennent des valeurs qui sont présents par le programme opsi-winst et ne peuvent être changé dans un script. Avant d interpréter le script, opsi-winst remplace chaque occurrence du nom de constante avec sa valeur dans l ensemble du script (substitution textuelle). Un exemple permettra de clarifier cela: La constante %ScriptPath% est le nom prédéfini de l endroit où opsi-winst, trouve et lit le script qu il exécute. Cet emplacement peut être, par exemple, p:\product. Puis nous devons écrire "%ScriptPath%" dans le script lorsque l on veut faire obtenir la valeur "p:\product". respecter les guillemets qui incluent le délimiteur de la constante. Variables de texte ou chaîne, variables courtes, ont une apparence très semblable à toutes les variables (chaîne) dans un langage de programmation commune. Ils doivent être déclarés par une déclaration DefVar avant qu ils puissent être utilisés. Dans les sections primaires, les valeurs peuvent être assignées à des variables (une ou plusieurs fois). Ils peuvent être utilisés comme éléments dans les expressions composées (comme l addition de chaînes) ou comme arguments de fonction. Mais ils se comportent comme une constante dans une section secondaire, ils apparaissent comme un élément nonsyntaxiques étrangers. Leur valeur est fixé et insérée par substitution textuelle pour leurs noms (quand une section est appelée, alors la substitution textuelle pour les constantes réelles a lieu avant de commencer l exécution de l ensemble du script). Variables de liste de chaînes sont renseignés par une déclaration DefStringList. Dans les sections primaires peuvent être utilisés à des fins multiples, par exemple collecte des chaînes, manipulation des chaînes, building sections. En détail:

opsi-winst Manual (4.11.3) 11 / 120 6.2 Constantes Global Text Les scripts doivent travailler dans un des contextes différents, sans modification manuelle. Les contextes peuvent être caractérisées par des valeurs système comme la version de l OS ou certains chemins. opsi-winst introduit ces valeurs comme des constantes dans le script. 6.2.1 Utilisation La caractéristique fondamentale d une constante texte est la manière avec laquelle les valeurs qu elle représente entrent dans le processus d interprétation du script: Le nom de la constante, qui est une simple séquence de caractères, est remplacé par sa valeur fixe, dans le script entier avant commencer l exécution du script. Le remplacement ne tient pas compte de tout contexte syntaxique dans lequel le nom éventuellement se produit (exactement comme avec des variables dans les sections secondaires). 6.2.2 Exemple opsi-winst met en œuvre des constantes %ScriptPath% pour l emplacement du script interprété momentanément et %System% pour le nom du répertoire système de Windows. La sous-section suivante (Fichiers) définit une commande qui copie tous les fichiers du répertoire de script dans le répertoire système de Windows: [files_do_my_copying] copy "%ScriptPath%\system\*.*" "%System%" En ce moment les constantes suivantes sont fournie: 6.2.3 System paths 6.2.3.1 Répertoires du système de base %ProgramFilesDir%: c:\program files %ProgramFiles32Dir%: c:\program Files (x86) %ProgramFiles64Dir%: c:\program files %ProgramFilesSysnativeDir% : c:\program files %Systemroot% : c:\windows %System% : c:\windows\system32 %Systemdrive% : c: %ProfileDir% : c:\documents and Settings 6.2.3.2 Répertoires communs (AllUsers) %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%

opsi-winst Manual (4.11.3) 12 / 120 6.2.3.3 Répertoires utilisateur courant (connecté ou contexte de l utilisateur) %AppdataDir% ou %CurrentAppdataDir% : c:\documents and Settings\%USERNAME%\Application Data %CurrentStartmenuDir% %CurrentDesktopDir% %CurrentStartupDir% %CurrentProgramsDir% %CurrentSendToDir% %CurrentProfileDir% //depuis 4.11.2.1 6.2.3.4 Répertoire constantes /AllNtUserProfiles Dans les sections Files qui sont appelés avec l option /AllNtUserProfiles il y a une pseudo variable %UserProfileDir% Lorsque la section est exécutée pour chaque utilisateur qui existe sur un poste de travail cette variable représente le nom du répertoire du profil de l utilisateur venons de traiter. %CurrentProfileDir% // depuis 4.11.2.1 doit être utilisé à la place de %UserProfileDir% pour avoir les Files-sections utilisable aussi pour userloginscripts. 6.2.4 Chemins et répertoires de opsi-winst %opsiscripthelperpath% Correspond à: %ProgramFiles32Dir%\opsi.org\opsiScriptHelper Chemin dans lequel le programme d aide, bibliothèques, et les éléments nécessaires à l exécution du script pourraient être installée. Depuis la version 4.11.3.2 %ScriptPath% ou %ScriptDir% : représente le chemin du script opsi-winst actuelle (sans dosseret de fermeture). En utilisant cette variable, nous pouvons construire chemin et les noms de fichier dans les scripts qui sont relatives à l emplacement du script. Donc, tout peut être copié, appelé de son nouveau lieu, et tous fonctionne comme avant. %ScriptDrive% : Il conduit où le script opsi-winst exécuté est situé (y compris le côlon). %WinstDir% : L emplacement de opsi-winst actuellement exécuté (sans dosseret de fermeture). %WinstVersion% : Version de opsi-winst en cours d exécution. %Logfile% : Le nom du fichier de journalisation système utilisé par opsi-winst. Exemple: Le code: comment "Testing: " message "Testing constants: "+"%"+"winstversion" +"%" set $ConstTest$ = "%WinstVersion%" set $InterestingFile$ = "%winstdir%\winst.exe" if not (FileExists($InterestingFile$)) set $InterestingFile$ = "%winstdir%\winst32.exe" set $INST_Resultlist$ = getfileinfomap($interestingfile$) set $CompValue$ = getvalue("file version with dots", $INST_Resultlist$ ) if ($ConstTest$ = $CompValue$) comment "passed" set $TestResult$ = "not o.k." LogWarning "failed"

opsi-winst Manual (4.11.3) 13 / 120 résultats dans le journal suivante: comment: Testing: message Testing constants: %winstversion% Set $ConstTest$ = "4.10.8.3" The value of the variable "$ConstTest$" is now: "4.10.8.3" Set $InterestingFile$ = "N:\develop\delphi\winst32\trunk\winst.exe" The value of the variable "$InterestingFile$" is now: "N:\develop\delphi\winst32\trunk\winst. exe" If Starting query if file exist... FileExists($InterestingFile$) <<< result true not (FileExists($InterestingFile$)) <<< result false Then EndIf Set $INST_Resultlist$ = getfileinfomap($interestingfile$) retrieving strings from getfileinfomap [switch to loglevel 7 for debugging] Set $CompValue$ = getvalue("file version with dots", $INST_Resultlist$ ) retrieving strings from $INST_Resultlist$ [switch to loglevel 7 for debugging] The value of the variable "$CompValue$" is now: "4.10.8.3" If $ConstTest$ = $CompValue$ ($ConstTest$ = $CompValue$) Then comment: passed <<< result true <<< result true Else EndIf 6.2.5 Information réseau %Host% : (Obsolète) La valeur de la variable d environnement hôte (Traditionnellement, signifiant le nom du serveur OPSI, ne pas confondre avec %HostID% signifiant le nom du réseau du client). %PCName%: La valeur de la variable d environnement PCName, quand existante. Sinon, la valeur de la variable d environnement computername. (Doit être le nom NetBIOS de l ordinateur) %IPName% : Le nom DNS de l ordinateur. Habituellement identique au nom netbios et donc avec %PCName% outre que les noms NetBIOS, utilisé en majuscules. %Username% : Nom de l utilisateur connecté. 6.2.6 Les données, pour et à partir, du service opsi %HostID% : Doit être le nom de domaine entièrement qualifié du client opsi car il est fourni par la ligne de commande ou autrement. %opsiserviceurl% : L URL du service opsi (normalement https://). %opsiserver% : Le nom du serveur dérivé de %opsiserviceurl%. %opsiserviceuser% : L ID utilisateur pour lequel il y a une connexion au service opsi.

opsi-winst Manual (4.11.3) 14 / 120 %opsiservicepassword% : Le mot de passe d utilisateur utilisé pour la connexion au service opsi. Le mot de passe est éliminée lors de la connexion par la fonction de journalisation standard de opsi-winst. %installingprodname%: Le productid du produit qui est réellement installée via l appel par le service opsi. Vide si le script n est pas lancé par le service opsi. %installingprodversion%: Une chaîne combinées de <productversion>-<packageversion> pour le produit qui est actuellement installée via l appel par le service opsi. Vide si le script n est pas lancé par le service opsi. %installingproduct% : (Obsolète) Le nom (productid) du produit pour lequel le service a appelé le script exécuté. Dans le cas où le script n est pas exécuté via le service la chaîne est vide. 6.3 Variables chaîne (ou texte) 6.3.1 Déclaration Les variables chaîne doivent être déclarés avant qu ils ne puissent être utilisées. La syntaxe de la déclaration est DefVar <nom de la variable> exemple: DefVar $MsVersion$ Explication: Les noms de variables ne sont pas nécessairement commencé ou terminé par un signe dollar, mais cela est recommandé comme une convention pour comprendre leur fonctionnement dans les sections secondaires. Les variables ne peuvent être déclaré que dans les sections primaires (Initial section, Actions section and sub sections). La déclaration ne devrait pas dépendre d une condition. Ne doit pas être placée dans une branche d une instruction if. Sinon, il pourrait arriver que la déclaration DefVar n est pas exécuté pour une variable, mais une évaluation de la variable est essayé dans certains clause if (produisant une erreur de syntaxe). Les variables sont initialisées avec une chaîne vide (""). Recommandation: La première lettre et la dernière du nom doit être $ Définissez toutes les variables au début du script 6.3.2 Affectation de valeur Comme il est approprié pour une variable, il peut prendre en une seule valeur la réponse à une série de valeurs alors que le script progresse. Les valeurs sont affectées par des déclarations avec la syntaxe Set <nom de la variable> = <Valeur> <Valeur> désigne toute expression (valeur de chaîne). Exemples (Par Exemples voir Section 7.4): Set $OS$ = GetOS Set $NTVersion$ = "nicht bestimmt" if $OS$ = "Windows_NT" Set $NTVersion$ = GetNTVersion DefVar $Home$ Set $Home$ = "n:\home\user name" DefVar $MailLocation$ Set $MailLocation$ = $Home$ + "\mail"

opsi-winst Manual (4.11.3) 15 / 120 6.3.3 Utilisation de variables dans les expressions de chaîne Dans les sections primaires d un script opsi-winst, une variable "détient" une valeur. Quand elle est déclaré, est initialisé avec la chaîne vide "". Lorsqu une nouvelle valeur est assignée à lui via la commande set, il représente cette valeur. Dans une section primaire une variable peut remplacer toute expression de chaîne respectivement peut être un élément d une expression de chaîne, ex. Set $MailLocation$ = $Home$ + "\mail" Dans une section primaire le nom de la variable désigne un objet qui représente une chaîne, Si nous ajoutons la variable, nous entendons que la chaîne sous-jacente doit être ajouté en quelque sorte. Cette chaîne de représentation est contextuel dans une section secondaire. Juste le nom de la variable se trouve maintenant pour la chaîne. 6.3.4 Sections secondaire contre primaires Quand une section secondaire est chargé, et opsi-winst commence son interprétation, la séquence de caractères d un nom de variable est directement remplacée par la valeur de la variable. Exemple: Une commande copy dans une section fichiers doit copier un fichier dans "n:\home\user name\mail\backup" copiés. Nous avons mis $MailLocation$ dans le répertoire au-dessus: DefVar $Home$ DefVar $MailLocation$ Set $Home$ = "n:\home\user name" Set $MailLocation$ = $Home$ + "\mail" $MailLocation$ maintenant contient "n:\home\user name\mail" Dans une section primaire, nous pouvons désormais exprimer le répertoire "n:\home\user name\mail\backup" avec $MailLocation$ + "\backup" Le même répertoire doit être désignée dans une section secondaire: "$MailLocation$\backup" Une différence fondamentale entre la pensée de variables dans les sections primaires par rapport au secondaires, c est que, dans une section primaire, nous pouvons former une expression d assignation, comme $MailLocation$ =$MailLocation$ + "\backup" Comme d habitude, cela signifie que $MailLocation$ a tout d abord une valeur initiale et prend une nouvelle valeur en ajoutant quelques chaîne à la valeur initiale. La référence de la variable est dynamique, et peut avoir des antécédents. Dans une section secondaire telle expression ne serait rien (et éventuellement erronée), depuis $MailLocation$ ne peut être que remplacée par une chaîne de caractères fixes (à toutes les occurrences quasiment au même moment). 6.4 Variables liste de chaînes Les variables pour les listes de chaîne doivent être affecté dans une déclaration DefStringList, par exemple: DefStringList SMBMounts

opsi-winst Manual (4.11.3) 16 / 120 Une liste de chaîne peut servir par exemple comme conteneur pour la sortie capturé d un programme shell. Les chaînes collectées peuvent être manipulés dans un grand nombre de façons. Dans le détail ce sera traitée dans la section sur le traitement des listes de chaînes (voir Section 7.5). Attention Si (imbriquées) les sous-sections seront confiés à des fichiers externes, les sections dites secondaires sont généralement placés dans le fichier, à partir de laquelle ils sont appelés. Selon la complexité de la syntaxe, ils peuvent avoir besoin supplémentaires également être logés dans le fichier principal.

opsi-winst Manual (4.11.3) 17 / 120 Chapitre 7 Syntaxe et signification des sections primaires d une script opsi-winst Comme présenté brièvement dans le chapitre 4 la section Actions d une script peut être considéré comme une méthode principale du script opsi-winst et décrit la séquence de traitement global. Il peut appeler des sous-routines - les sous-sections - qui peuvent ensuite appeler récursivement les sous-sections elles-mêmes. Les sections suivantes expliquent la syntaxe et l utilisation des sections primaires d un script opsi-winst. 7.1 Sections primaires Il y a trois sortes de sections primaires dans un script Une section Initial (peut être omise), Une section Action, n importe quel nombre de sections Sub une section ProfileActions Les sections Initial et Action sont syntaxiquement équivalents (mais Initial doit garder la première place). Par convention, dans la section Initial sont faits certains paramétrages de l exécution du script (par exemple le niveau de journalisation). La section Action peut être considéré comme le programme principal dans un scripts opsi-winst. Il contient la séquence d actions qui sont contrôlées par le script. Les sous-sections sont ainsi syntaxiquement équivalents. Mais ils sont appelés depuis la section Action. Ensuite, ils peuvent appeler eux-mêmes des sous-sections Sub. Une sous-section Sub est déterminée par la création d un nom qui commence par "Sub", par exemple Sub_Instal lbrowser. En écrivant son nom dans la section Action nous produisons un appel à la sous-section. Le sens de cet appel est défini par le contenu de la section dans le script qui commence par le nom entre crochets, dans l exemple [Sub_InstallBrowser] Note Les sous-sections du second ordre et supérieur ne peuvent accueillir des sections internes. Au lieu de cela, leurs appels de procédure doit se référer aux sections définies dans le fichier script principal ou définies comme des sections externes (voir Section 7.13). Attention Si (imbriqués) les sous-sections seront confiés à des fichiers externes, les sections appelées doivent être dans ce fichier d où ils sont appelés. Selon la complexité du script ils peuvent parfois être placé aussi dans le fichier principal.

opsi-winst Manual (4.11.3) 18 / 120 Une section ProfileActions dans un script d installation typique peut être utilisè comme une sous-section avec une syntaxe spéciale. Dans un userloginscript cette section sera utilisée comme un script de démarrage (à la place de Actions). Voir le chapitre User Profile Management dans le manuel d opsi et Section 7.11. 7.2 Paramétrage de ospi-winst Entrées typiques d une section Initial définissent certains attributs d exécution de opsi-winst. L exemple suivant montre comment les réponses d erreur peuvent être configuré: 7.2.1 Exemple [Initial] SetLogLevel=5 ExitOnError=false ScriptErrorMessages=on TraceMode=off Cela signifie que: le niveau de journalisation est réglé à 5 quand une erreur survient winst vais essayer de continuer l exécution du script Si une erreur de syntaxe de script survient, il doit être communiquée (ce sera dans une fenêtre spéciale) nous ne voulons pas activer le mode trace pour l exécution du script (ce qui voudrait dire que nous avons une demande après chaque étape du programme, si nous voulons continuer). Les valeurs ci-dessus sont les valeurs par défaut, opsi-winst va les assumer si ces déclarations sont manquants. Pour les détails de la syntaxe et de la signification: 7.2.2 Spécification du niveau de journalisation Attention L ancienne fonction LogLevel= est obsolète depuis la version 4.10.3 de opsi-winst. Pour des raisons de compatibilité descendante Loglevels sera augmenté de 4 avant qu ils ne soient utilisés. Il y a deux variantes syntaxiques pour spécifier le niveau de journalisation: SetLogLevel = <nombre> SetLogLevel = <expression de chaîne> À savoir le nombre peut être donnée comme une valeur entière ou comme une expression chaîne (voir section 6.3). Dans le second cas, opsi-winst tente d évaluer l expression de chaîne comme un nombre. Il existe dix niveaux de 0 à 9. Il existe deux variantes similaires pour spécifier le niveau de log: SetLogLevel = <nombre> SetLogLevel = <expression de chaîne> À savoir le nombre peut être donnée comme une valeur entière ou comme une expression chaîne (voir section 6.3). Dans le second cas, opsi-winst tente d évaluer l expression de chaîne comme un nombre. Ils existent dix niveaux de 0 à 9.

opsi-winst Manual (4.11.3) 19 / 120 0 = rien ( absolument rien ) 1 = essentielles (" informations essentielles ") 2 = critiques ( des erreurs inattendues qui peuvent entraîner une interruption du prog 3 = erreur ( Les erreurs qui n arrêteront pas l exécution du programme ) 4 = avertissement ( vous devriez jeter un oeil à ce) 5 = notice ( Important statements to the program flow ) 6 = info ( Infos supplémentaires ) 7 = débogage ( messages de débogage importants ) 8 = débogage2 ( beaucoup plus d informations de débogage et de données ) 9 = confidentielles ( mots de passe et autres données de sécurité pertinentes ) 7.2.3 Version requise de opsi-winst La déclaration requiredwinstversion <symbole relationnel> <chaîne de valeurs> par exemple: requiredwinstversion >= "4.3" permet à opsi-winst de vérifier si l état de la version désirée est donnée. Sinon un message d erreur windows apparaît. Cette fonctionnalité existe depuis la version 4.3 de opsi-winst. Pour une version antérieure, la déclaration est inconnue, et la déclaration elle-même est un erreur de syntaxe qui sera indiquée par la fenêtre erreur de syntaxe (voir la section suivante). Par conséquent, la déclaration peut être utilisée indépendamment de la version de opsi-winst actuellement utilisée tant que la version requise est au moins la version 4.3. 7.2.4 Réaction sur les erreurs Il y a deux sortes d erreurs qui sont traités de différentes manières: 1. déclarations illégales qui ne peuvent pas être interprétées par opsi-winst (erreurs syntaxiques), 2. faute de déclarations qui ne peuvent pas être exécutées à cause de raisons externes objectives (erreurs d exécution). En principe, les erreurs syntaxiques sont indiquées dans une fenêtre pop-up pour la correction immédiate, les erreurs d exécution sont enregistrées dans un fichier journal pour être analysés plus tard. Le comportement de opsi-winst quand il reconnaît une erreur de syntaxe est défini par la déclaration de configuration ScriptErrorMessages = <valeur booléenne> Si la valeur est vraie (défaut), les erreurs de syntaxe déclenchent une fenêtre popup avec quelques informations sur l erreur. Ce genre d erreurs ne sont pas enregistrées dans le fichier journal. Le fichier journal doit conserver des informations sur l exécution réelle d un script de syntaxe correcte. La valeur booléenne peut être true (vrai) ou false (faux). Les délimiteurs on ou off peuvent être utilisés aussi bien. FatalOnSyntaxError = <valeur booléenne> true = (défaut) Si une erreur de syntaxe se produit, l exécution du script s arrête et le résultat sera mis à failed. En outre, le message Syntax Error sera transmis au serveur opsi. false = Si une erreur de syntaxe se produit, l exécution du script ne sera pas arrêté et le résultat sera mis à success. Dans les deux cas ci-dessus, l erreur de syntaxe sera enregistré comme Critical. Dans les deux cas ci-dessus, le compteur d erreurs sera augmenté de 1. Depuis 4.11.3.2 Dans les anciennes versions il n y avait pas la journalisation des erreurs de syntaxe, aucune augmentation de compteur d erreur, et le résultat était toujours mis à success. Il y a deux options de configuration pour des erreurs d exécution.

opsi-winst Manual (4.11.3) 20 / 120 ExitOnError = <valeur booléenne> Cette déclaration définit si l exécution du script prend fin quand une erreur survient. Si la valeur est true ou yes le programme va arrêter l exécution, sinon les erreurs sont simplement enregistré (défaut). TraceMode = <valeur booléenne> En TraceMode (défaut false) chaque entrée du journal systeme sera en plus affiché dans la fenêtre de message, avec un bouton OK. 7.2.5 Rester au-dessus StayOnTop = <valeur booléenne> Avec StayOnTop = true (ou = on) nous demandons que - en mode batch - la fenêtre de opsi-winst soit sur le dessus des fenêtres qui se partagent l écran. Cela signifie qu il devrait être visible dans le "premier plan" tant qu aucune autre fenêtre aie le même statut. Attention Selon le manuel du système la valeur ne peut pas être modifié pendant l exécution du programme. Mais il semble que nous pouvons donner une nouvelle valeur pour une fois. StayOnTop il est à false par défaut afin d éviter que certains autres processus génère un message d erreur qui peut éventuellement ne pas être vu si opsi-winst reste au-dessus. 7.3 Montrer le mode fenêtre Pour changer la façon dont la fenêtre opsi-winst est affichée, utilisez ces commandes: NormalizeWinst définit la fenêtre opsi-winst au mode normal IconizeWinst définit la fenêtre opsi-winst au mode minimisé RestoreWinst définit la fenêtre opsi-winst au mode maximisé 7.4 Expressions de chaîne, Valeurs de chaîne, et Fonctions de chaîne Une expression de chaîne peut être une valeur de chaîne élémentaires une valeur de chaîne imbriquées une variable chaîne la concaténation d autres expressions de type chaîne un appel de fonction d une valeur de chaîne 7.4.1 Valeur de chaîne élémentaires Une valeur de chaîne élémentaires est une séquence de caractères qui est enfermé dans des guillemets double ou simple, formellement: "<séquence de caractères>" ou <séquence de caractères> Exemple: