Hoe instreg.exe en instsvc.exe te gebruiken (command line tools voor Firebird installatie op Windows)
Hoe instreg.exe en instsvc.exe te gebruiken
Auteurs: Origineel: Alex Peshkov (peshkoff at mail.ru), Herzien door: Olivier Mascia (om at tipgroup.com)
OPMERKING :: Om mogelijke problemen met lange paden met spaties of speciale (niet-ASCII) tekens op te lossen, accepteren deze tools de RootDirectory niet langer als commandoregelargument. Beide binaire bestanden moeten worden geïnstalleerd in (of gekopieerd naar) de /bin-map onder uw Firebird-hoofdmap.
(Hoofdmap == de hoofdmap waar firebird.conf en security2.fdb zijn geïnstalleerd.)
Als ze zich bijvoorbeeld in C:\FB20.in bevinden, wordt de hoofdmap afgeleid als C:\FB20.
INSTREG.EXE
Het doel van dit hulpprogramma is het installeren van de registersleutels voor Firebird. Omdat het de taak heeft om het RootDirectory-pad af te leiden als de map direct boven de eigen locatie en dit als absoluut pad naar het register te schrijven, moet instreg.exe worden geïnstalleerd in de /bin-submap van de Firebird-hoofdmap (zie opmerking hierboven).
De registersleutel is *niet* vereist om de engine te laten draaien; veel tools van derden verwachten echter deze sleutel te lezen om te kunnen werken. De opgeslagen sleutel is
HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances
en bevat één stringwaarde: DefaultInstance.
Deze ‘DefaultInstance’-stringwaarde bevat het volledige pad (met backslash afgesloten) naar de hoofdmap van de installatie. Deze opzet is zo gebouwd dat beheer van benoemde multi-instances van de server in een volgende versie mogelijk zal zijn. Momenteel ontvangt de enige instance de hardgecodeerde naam ‘DefaultInstance’. Er wordt niets anders in het register opgeslagen. Versie- of configuratie-informatie moet door tools van derden worden gevonden in het betreffende firebird.conf-bestand. Dit bestand kan worden gelokaliseerd dankzij het hoofdpad dat is opgeslagen in de …\Instances\DefaultInstance-waarde.
Gebruik:
instreg i[nstall]
instreg r[emove]
‘-z’ kan met elke andere optie worden gebruikt en drukt de Firebird-softwareversie af als eerste regel van de uitvoer.
Voor korte tekstuele hulp roept u instreg.exe gewoon aan zonder argumenten.
INSTSVC.EXE
Firebird biedt een standaardroutine om de Firebird-service op WinNT/2000/XP-platforms te beheren - instsvc.exe.
Consoleberichten
De uitvoer van Windows-foutmeldingen (indien aanwezig) is verbeterd, zodat elke vereiste transliteratie van ANSI-strings naar de OEM-tekenset van het consolevenster wordt uitgevoerd. Dit betekent dat mensen met een niet-Engelse Windows-versie Windows-systeemfoutmeldingen in hun eigen taal krijgen met correcte accenten en dergelijke.
Beveiligingsgerelateerde functies
De eerder geïmplementeerde optie ‘-login’ (of -l) is uitgebreid herzien en verbeterd. Deze kan nu worden gebruikt om de service(s) in te stellen om te draaien onder een specifiek gebruikersaccount (vermoedelijk met beperkte rechten op het systeem) in plaats van de standaard “LocalSystem”.
Gebruik:
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] | -m[ultithreaded] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] gebruikersnaam [wachtwoord] ]
[ -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 ]
Dit hulpprogramma moet worden geplaatst en uitgevoerd vanuit de ‘bin’-map van uw Firebird-installatie.
-
‘*’ geeft de standaardwaarden aan
-
‘-z’ kan met elke andere optie worden gebruikt en drukt de versie af
-
‘gebruikersnaam’ verwijst standaard naar een lokaal account op deze machine.
-
Gebruik de notatie ‘domein\gebruikersnaam’ of ‘server\gebruikersnaam’ indien van toepassing.
Voorbeelden
ervan uitgaande dat Firebird is geïnstalleerd (gekopieerd naar de geïnstalleerde locatie).
Superserver en automatische start zijn nu de standaard.
instsvc i
instsvc install
stelt een Superserver in als service in automatische startmodus (gestart bij het opstarten) onder de standaard systeemidentiteit, genaamd “LocalSystem”.
instsvc i -g
instsvc install -guardian
als hierboven, maar start eerst de Guardian-service.
De opties “-demand” (-d) en “-classic” (-c) maken het mogelijk de standaardwaarden te wijzigen, zodat de classic server (in plaats van de superserver) kan worden geconfigureerd als service en elke service kan worden geconfigureerd om op aanvraag te starten in plaats van bij het opstarten.
Om de service(s) te verwijderen
Services moeten worden gestopt voordat ze worden verwijderd. Dit zou kunnen worden geautomatiseerd met 3 regels code, maar het is beter om het zo te laten voor de veiligheid.
instsvc r
instsvc remove
verwijdert de servicedefinitie. Als Guardian was geconfigureerd, worden zowel de guardian- als de serverservices verwijderd.
Om de geïnstalleerde service(s) te starten en te stoppen
instsvc sta
instsvc start
start de server of Guardian + server, afhankelijk van wat is geconfigureerd door het installatiecommando.
instsvc stop
stopt de server of Guardian + server, afhankelijk van wat is geconfigureerd door het installatiecommando.
Om een serverstatusrapport te krijgen
Dit is een nieuw commando:
instsvc q
instsvc query
Drukt een rapport af van precies *wat* is geconfigureerd en *hoe*, evenals of de services draaien of zijn gestopt.
Om de beveiligde aanmeldingsfunctie te gebruiken
Optie “-login” vereist een gebruikersnaam en een wachtwoord:
instsvc i -g -login gebruiker wachtwoord
Dit configureert FB superserver als automatische start, met Guardian, om te draaien onder de identiteit “gebruiker” met wachtwoord wachtwoord.
\* Als het wachtwoord is opgenomen, mag het wachtwoord niet met ‘-’ beginnen.
\* Als het wachtwoord wordt weggelaten van de commandoregel, zal instsvc erom vragen. In dat geval wordt het wachtwoord gemaskeerd met ‘*’ terwijl het wordt getypt.
Bij het configureren van de services zoals hierboven, verleent instsvc automatisch de Windows-besturingssysteembevoegdheid genaamd “Aanmelden als service” aan de opgegeven gebruiker. Dit is vereist, anders zou de service niet mogen starten. Instsvc zwijgt hierover tenzij het faalt.
Om rekening te houden met de mogelijkheid dat de gebruiker die via de -login-schakelaar inlogt een gewone gebruiker is zonder beheerdersrechten op de machine, past instsvc de standaardbeveiligingsdescriptor van de service(s) aan, zodat deze gebruiker ze kan starten/stoppen/opvragen.
Dit is nodig om de Guardian (die ook als deze gebruiker draait) in staat te stellen de FB-server te starten. De gebruiker kan de service(s) niet verwijderen of hun configuratie wijzigen.
OPMERKING
Instsvc maakt de “gebruiker” NIET aan op de Windows-machine. Dat zou geen goed idee zijn. De beheerder wil de gebruiker misschien aanmaken als onderdeel van de lokale machine of als onderdeel van een domein, en instsvc heeft geen specifieke behoefte om de verantwoordelijkheid van de beheerder voor het aanmaken van gebruikers over te nemen.
De gebruiker moet lees-/schrijftoegang hebben tot alle databases en het firebird.log-bestand. Om veiligheidsredenen moet schrijftoegang tot firebird.conf en Firebird-uitvoerbare bestanden NIET worden gegeven.
Op Windows NT/2K/XP is het gebruikelijk om het domein- of servervoorvoegsel op te nemen voor een gebruiker die is gedefinieerd op een domein of lokaal op een andere server. In de bovenstaande voorbeelden kan “gebruiker” de vorm aannemen van:
DOMEIN\gebruiker of
SERVER\gebruiker
Zonder voorvoegsel is de gebruiker impliciet een lokale gebruiker op de huidige machine.