Modificarea distribuțiilor bazate pe instalatorul de ferestre

Modificarea distribuțiilor
bazat pe Windows Installer

Abilitatea de a modifica distribuțiile bazate pe Windows Installer a întors întotdeauna administratorii de sistem și specialiștii în asistență în sistem. Luați în considerare una dintre componentele Windows Installer Resource Kit - orca.exe. Această utilitate este special concepută pentru rezolvarea unor astfel de probleme.







Soluția pentru sarcinile de instalare automată a software-ului nu se limitează la utilizarea cheilor sistemului de instalare Windows Installer. Având posibilitatea de a modifica pachetul de instalare, accesul la baza de date a tuturor parametrilor distribuției, administratorul poate crea pachete pentru instalarea automată fără a utiliza fișiere externe care conțin setări diferite.

Acordați atenție gestionării programatice a bazei de date, stocate în fișiere MSI.

Acesta este un serviciu pentru instalarea și configurarea produselor software incluse în sistemul de operare. Poate fi instalat și ca pachet de actualizare sau ca distribuție separată.

Windows Installer, ca orice altă soluție rapidă, suportă un număr de switch-uri de linie de comandă care asigură controlul instalării automate a pachetului:

  • / norestart - nu reporniți computerul după instalarea actualizării;
  • / queit - efectuați instalarea în modul "silențios";
  • / help - afișează ajutor pe ecran care conține cheile și descrierea lor succintă.

Dublu-clic pe fișierul cu extensia *. Msi pornește utilitarul:

% SystemRoot% System32msiexec.exe / i * .msi

Tabelul 1 prezintă o listă a parametrilor de linie de comandă frecvent utilizați care oferă o instalare automată a aplicației.

Tabelul 1. parametrii liniei de comandă msiexec.exe

Accesați în mod programatic fișierele Msi

Pentru a asigura gestionarea programatică a bazei de date stocate în fișierul MSI, se utilizează șablonul prezentat în Lista 1. Este de notat faptul că modelul de citire a datelor este diferit de modelul de corecție a datelor. Despre el vor fi spuse separat.

Listarea 1. Șablonul pentru accesarea bazei de date într-un fișier MSI

Setați obj = CreateObject ("WindowsInstaller.Installer")

Setați baza = obj.OpenDatabase (MSI, Mod)

În șablonul de mai sus, prima linie se conectează la un obiect COM care accesează baza de date.

Următoarea linie se conectează la baza de date utilizând metoda OpenDatabase, care are două argumente. Primul este numele bazei de date, care este calea completă la fișierul MSI. Al doilea este modul de acces la baza de date:

În cel de-al treilea se realizează executarea interogării solicitate. Interogarea SQL este specificată utilizând metoda OpenView, iar interogarea este executată utilizând metoda Execute.

Rețineți că în interogarea SQL, registrul de nume de câmpuri și nume de tabel are o valoare.

Ultima linie înregistrează modificările efectuate în baza de date utilizând comanda Commit.

Lucrul cu tabelele din orca.exe

Cu câmpurile tabelelor de baze de date, puteți efectua următoarele acțiuni:

  • citirea câmpurilor existente;
  • creați noi câmpuri;
  • ștergeți câmpurile;
  • modificați câmpurile.






Citirea câmpurilor existente

Pentru a implementa modelul de căutare, utilizați un șablon (a se vedea lista 2), diferit de cel afișat în listare 1. Acest lucru se datorează faptului că introducerea, ștergerea și înlocuirea se fac într-un singur câmp, iar ieșirea este afișată pentru toate câmpurile.

Afișarea transformărilor se efectuează în a treia linie a listei 1. Se împarte în două substringuri - acestea sunt liniile 3 și 4 din listare 2. Aici sunt purtate metodele OpenView și Execute.

Apoi, se citește matricea de șiruri de caractere. Rețineți că în interogarea SELECT, câmpurile pot fi listate numai după nume. Valoarea "*" în acest caz nu funcționează. În timp ce citiți datele, este necesar să specificați numerotarea câmpurilor (Record.StringData (1)), începând cu o unitate (1).

Lista 2 prezintă un exemplu de citire a tuturor câmpurilor (proprietate, valoare) din tabelul Proprietăți din fișierul ACDSee 10 Photo Manager.msi:

Listă 2. Citește câmpurile din tabelul specificat

Setați obj = CreateObject ("WindowsInstaller.Installer")

Setați ob = obj.OpenDatabase ("C: ACDSeeACDSee 10 Photo Manager.msi", 0)

set View = ob.OpenView ("SELECT proprietate, valoare din proprietate")

Setare înregistrare = View.Fetch

Dacă înregistrarea nu este nimic, atunci ieșiți

Wscript.Echo Înregistrare.StringData (1) + vbTab + vbTab + Record.StringData (2)

Setare Vizualizare = Nimic

Crearea de noi câmpuri

Crearea de noi câmpuri este folosită destul de des, de exemplu, pentru a înregistra numărul de serie în pachetul de distribuție. Pentru aceasta, adăugați câmpul PIDKEY în tabelul Proprietăți cu valoarea corespunzătoare care conține numărul de serie al produsului. Pentru a adăuga un câmp nou, trebuie să plasați cursorul pe tabelul dorit (vezi Figura 3) și făcând clic dreapta în partea sa arbitrară, selectați Adăugați rând sau apăsați combinația de taste. Caseta de dialog rezultată va afișa câmpurile disponibile. Valorile necesare pot fi atribuite în aceeași fereastră.

Figura 3. Schimbarea parametrului

O operație similară poate fi efectuată programatic (a se vedea lista 3). Pentru a face acest lucru, apelați obiectul WindowsInstaller.Installer. Pe baza șablonului afișat în listare 1, vom forma lista 3. Ca al doilea parametru al metodei OpenDatabase, trebuie să specificați 1, deoarece operația de scriere a datelor este efectuată.

Cel mai dificil lucru din această listă este să formați corect solicitarea. Particularitatea interogării INSERT INFO este că, în primele paranteze, în care este specificat numele câmpului, numele câmpului trebuie să fie specificat cu numele părintelui. Toate numele parametrilor din interogare sunt cotate; toate valorile atribuite sunt în ghilimele și, în final, numele câmpurilor și tabelelor sunt sensibile la litere mari și mici.

Listing 3. Crearea unui atribut nou într-un tabel

Setați a = CreateObject ("WindowsInstaller.Installer")

Setați b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("INSERT INTO Property.

(Property.Property, Property.Value) Valori ("PIDKEY", "1234567890") ") Executați

Eliminarea câmpurilor existente dintr-un tabel

Eliminarea unui câmp se efectuează în conformitate cu următorul algoritm:

  • Setați cursorul de pe masa în care doriți să ștergeți parametrul;
  • Setați cursorul la parametrul care trebuie șters în tabel;
  • Apăsați butonul de pe tastatură sau de pe butonul din dreapta al mouse-ului, iar în meniul contextual - DELETE;
  • confirmă intenția de a șterge parametrul.

Aceeași sarcină poate fi rezolvată programabil (a se vedea Lista 4) utilizând șablonul 1. Pentru a vă asigura că puteți scrie în tabel, trebuie să setați al doilea parametru al metodei OpenDatabase la 1 (1).

Listing 4. Ștergerea unui atribut existent într-un tabel

Setați a = CreateObject ("WindowsInstaller.Installer")

Setați b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("Șterge din proprietate WHERE" PIDKEY "=" 1234567890 ")") Executați

Modificarea valorilor câmpurilor existente

Modificați valoarea introducând cursorul în celula dorită făcând dublu clic pe butonul stâng al mouse-ului (consultați Figura 3).

Schimbarea programului de proprietate se face prin aceleași reguli. În comparație cu cele două cazuri anterioare, se modifică numai interogarea.

Lista 5 dezactivează Detectorul de dispozitive.

Afișarea 5. Modificarea valorilor câmpurilor de tabelă existente

Setați a = CreateObject ("WindowsInstaller.Installer")

Setați b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("Funcția UPDATE SET Nivel =" 0 "WHERE Feature =" DevDetect "") Executați

Studiind cu atenție versiunea propusă, cititorul poate cu ușurință fie cu un script în VBScript, fie cu ajutorul programului orca.exe, facilitând mult sarcina de instalare în masă a software-ului, ceea ce va economisi mult timp și efort.







Articole similare

Trimiteți-le prietenilor: