Comment utiliser instreg.exe et instsvc.exe (outils en ligne de commande pour l'installation de Firebird sur Windows)
Comment utiliser instreg.exe et instsvc.exe
Auteurs : Original : Alex Peshkov (peshkoff at mail.ru), Révisé par : Olivier Mascia (om at tipgroup.com)
REMARQUE :: Pour résoudre tout problème potentiel lié aux chemins longs contenant des espaces ou des caractères spéciaux (non ASCII), ces outils n’acceptent plus le RootDirectory comme argument de ligne de commande. Les deux binaires doivent être installés dans (ou copiés vers) le répertoire /bin situé sous votre répertoire racine Firebird.
(Répertoire racine == répertoire racine où firebird.conf et security2.fdb sont installés.)
Par exemple, s’ils sont situés dans C:\FB20.in, le répertoire racine sera déduit comme étant C:\FB20.
INSTREG.EXE
Le but de cet utilitaire est d’installer les clés de registre pour Firebird. Comme sa tâche consiste à déduire le chemin du RootDirectory comme étant le répertoire immédiatement au-dessus de son propre emplacement et à l’écrire dans le registre comme chemin absolu, instreg.exe doit être installé dans le sous-répertoire /bin du répertoire racine de Firebird (voir la remarque ci-dessus).
La clé de registre n’est *pas* requise pour que le moteur fonctionne ; cependant, de nombreux outils tiers s’attendent à la lire pour fonctionner. La clé stockée est
HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances
et contient une valeur de chaîne : DefaultInstance.
Cette valeur de chaîne ‘DefaultInstance’ contient le chemin complet (terminé par une barre oblique inverse) vers le répertoire racine de l’installation. Cette configuration est conçue pour que la gestion des instances multiples nommées du serveur soit possible dans une prochaine version. Actuellement, l’unique instance reçoit le nom codé en dur ‘DefaultInstance’. Rien d’autre n’est stocké dans le registre. Toute information de version ou de configuration doit être trouvée par les outils tiers dans le fichier firebird.conf correspondant. Ce fichier peut être localisé grâce au chemin racine stocké dans la valeur …\Instances\DefaultInstance.
Utilisation :
instreg i[nstall]
instreg r[emove]
‘-z’ peut être utilisé avec toute autre option, affiche la version du logiciel Firebird comme première ligne de sortie.
Pour obtenir une aide textuelle brève, invoquez simplement instreg.exe sans arguments.
INSTSVC.EXE
Firebird fournit une routine standard pour gérer le service Firebird sur les plateformes WinNT/2000/XP - instsvc.exe.
Messages console
La sortie des messages d’erreur Windows (le cas échéant) a été améliorée afin que toute translittération requise des chaînes ANSI vers le jeu de caractères OEM de la fenêtre console soit effectuée. Cela signifie que les personnes utilisant un Windows non anglais obtiendront les messages d’erreur système Windows dans leur langue avec les accents corrects, etc.
Fonctionnalités liées à la sécurité
L’option ‘-login’ (ou -l) précédemment implémentée a été largement révisée et améliorée. Elle peut désormais être utilisée pour configurer le(s) service(s) afin qu’ils s’exécutent sous un compte utilisateur spécifique (présumé avoir des privilèges limités sur le système) au lieu du “LocalSystem” par défaut.
Utilisation :
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] | -m[ultithreaded] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] username [password] ]
[ -n[ame] instance ]
[ -i[nteractive] ]
instsvc sta[rt] [ -b[oostpriority] ] [ -n[ame] instance ]
instsvc sto[p] [ -n[ame] instance ]
instsvc q[uery]
instsvc r[emove] [ -n[ame] instance ]
Cet utilitaire doit être situé et exécuté depuis le répertoire ‘bin’ de votre installation Firebird.
-
‘*’ désigne les valeurs par défaut
-
‘-z’ peut être utilisé avec toute autre option, affiche la version
-
‘username’ fait référence par défaut à un compte local sur cette machine.
-
Utilisez le format ‘domaine\nom_utilisateur’ ou ‘serveur\nom_utilisateur’ si approprié.
Exemples
En supposant que Firebird est installé (copié à son emplacement d’installation).
Superserver et démarrage automatique sont désormais les valeurs par défaut.
instsvc i
instsvc install
configure un Superserver comme service en mode démarrage automatique (démarré au démarrage) sous l’identité système par défaut, nommée “LocalSystem”.
instsvc i -g
instsvc install -guardian
comme ci-dessus, mais démarre d’abord le service Guardian.
Les options “-demand” (-d) et “-classic” (-c) permettent de modifier les valeurs par défaut, de sorte que le serveur classique (au lieu du superserver) peut être configuré comme service et que l’un ou l’autre service peut être configuré pour démarrer à la demande au lieu de démarrer au démarrage.
Pour supprimer le(s) service(s)
Les services doivent être arrêtés avant d’être supprimés. Cela pourrait être automatisé avec 3 lignes de code, mais il est préférable de laisser les choses telles quelles par sécurité.
instsvc r
instsvc remove
supprime la définition du service. Si Guardian a été configuré, les services guardian et serveur seront tous deux supprimés.
Pour démarrer et arrêter le(s) service(s) installé(s)
instsvc sta
instsvc start
démarre le serveur ou Guardian + serveur, selon ce qui a été configuré par la commande install.
instsvc stop
arrête le serveur ou Guardian + serveur, selon ce qui a été configuré par la commande install.
Pour obtenir un rapport sur l’état du serveur
C’est une nouvelle commande :
instsvc q
instsvc query
Affiche un rapport sur exactement *ce qui* est configuré et *comment*, ainsi que sur le fait que les services sont en cours d’exécution ou arrêtés.
Pour utiliser la fonctionnalité de connexion sécurisée
L’option “-login” nécessite un nom d’utilisateur et un mot de passe :
instsvc i -g -login user pass
Cela configurerait le superserver FB en démarrage automatique, avec Guardian, pour s’exécuter sous l’identité “user” dont le mot de passe est pass.
\* Si le mot de passe est inclus, il ne doit pas commencer par ‘-’.
\* Si le mot de passe est omis de la ligne de commande, instsvc le demandera. Dans ce cas, le mot de passe sera masqué avec ‘*’ pendant la saisie.
Lors de la configuration des services comme ci-dessus, instsvc accorde automatiquement le privilège du système d’exploitation Windows nommé “Ouvrir une session en tant que service” à l’utilisateur spécifié. C’est requis, sinon le service ne serait pas autorisé à démarrer. Instsvc reste silencieux à ce sujet sauf en cas d’échec.
Pour prendre en compte la possibilité que l’utilisateur se connectant via le commutateur -login soit un utilisateur ordinaire sans privilèges d’administrateur sur la machine, instsvc ajuste le descripteur de sécurité par défaut du(des) service(s) afin que cet utilisateur puisse les démarrer/arrêter/interroger.
Cela est nécessaire pour permettre au Guardian (s’exécutant également sous cet utilisateur) de démarrer le serveur FB. L’utilisateur ne pourra pas désinstaller le(s) service(s) ni modifier leur configuration.
REMARQUE
Instsvc ne CRÉE PAS l’“utilisateur” sur la machine Windows. Cela ne serait pas une bonne idée. L’administrateur pourrait vouloir créer l’utilisateur dans le cadre de la machine locale ou d’un domaine, et instsvc n’a pas de besoin particulier d’usurper la responsabilité de l’administrateur en matière de création d’utilisateurs.
L’utilisateur doit avoir un accès en lecture/écriture à toutes les bases de données et au fichier firebird.log. Pour des raisons de sécurité, l’accès en écriture à firebird.conf et aux exécutables Firebird ne doit PAS être accordé.
Sur Windows NT/2K/XP, il est courant d’inclure le préfixe de domaine ou de serveur pour un utilisateur défini sur un domaine ou localement sur un autre serveur. Dans les exemples ci-dessus, “user” pourrait prendre la forme :
DOMAINE\user ou
SERVEUR\user
Sans préfixe, l’utilisateur est implicitement un utilisateur local sur la machine actuelle.