A Windows Installer alapú disztribúciók módosítása

Az elosztások módosítása
alapuló Windows Installer

A Windows Installer alapú terjesztések módosításának képessége mindig vonzóvá tette a rendszergazdákat és a rendszergazdák szakembereit. Vegye fontolóra a Windows Installer Resource Kit - orca.exe egyik összetevőjét. Ez a segédprogram kifejezetten ilyen jellegű problémák megoldására készült.

Az automatikus szoftvertelepítés feladatainak megoldása nem korlátozódik a Windows Installer telepítési rendszerének kulcsaira. A telepítési csomag megváltoztatásának lehetősége, a disztribúció összes paraméterének elérése az adatbázisban, az adminisztrátor különféle beállításokat tartalmazó külső fájlok használata nélkül hozhat létre csomagokat az automatikus telepítéshez.

Figyelje meg az adatbázis programozható kezelését, msi fájlokban.

Ez az operációs rendszer részét képező szoftverek telepítésére és konfigurálására szolgáló szolgáltatás. Telepíthető frissítési csomagként vagy különálló elosztásként.

A Windows Installer, mint bármely más gyorsjavítás, számos parancssori kapcsolót támogat, amelyek biztosítják a csomag automatikus telepítését:

  • / norestart - ne indítsa újra a számítógépet a frissítés telepítése után;
  • / queit - telepítse a telepítést "csendes" üzemmódban;
  • / help - a képernyőn megjelenő súgó megjelenítése és a rövid leírása.

Kattintson duplán a fájlra a kiterjesztéssel *. Az Msi elindítja a segédprogramot:

% SystemRoot% System32msiexec.exe / i * .msi

Az 1. táblázat a gyakran használt parancssori paraméterek listáját mutatja be, amelyek az alkalmazás automatikus telepítését biztosítják.

1. táblázat: msiexec.exe parancssori paraméterek

Az MSI-fájlok programozáshoz való hozzáférése

Az msi fájlban tárolt adatbázis programozható kezelésének biztosítása érdekében az 1. listában szereplő sablont használják. Megjegyzendő, hogy az adatleolvasási sablon eltér az adatkorrekció mintájától. Róluk külön tájékoztatni fogják.

Listázás 1. A sablon az adatbázis eléréséhez egy msi fájlban

Állítsa be az obj = CreateObject ("WindowsInstaller.Installer")

Set base = obj.OpenDatabase (MSI, mód)

A fenti sablonban az első sor egy olyan COM objektumhoz kapcsolódik, amely hozzáfér az adatbázishoz.

A következő sor az OpenDatabase módszerrel csatlakozik az adatbázishoz, amely két argumentummal rendelkezik. Az első az adatbázis neve, amely az MSI fájl teljes elérési útja. A második az adatbázishoz való hozzáférés módja:

A harmadiknál ​​a kért lekérdezés végrehajtása valósul meg. Az SQL lekérdezés az OpenView módszerrel van megadva, és a lekérdezés végrehajtása az Execute módszerrel történik.

Emlékezzünk vissza, hogy az SQL lekérdezésben a mezők és táblák nevének regiszterének értéke van.

Az utolsó sor a Commit parancs segítségével rögzíti az adatbázisban végrehajtott változtatásokat.

Az asztalok kezelése az orca.exe-ben

Az adatbázis-táblák mezőivel a következő műveleteket hajthatja végre:

  • meglévő mezők olvasása;
  • új mezőket hoz létre;
  • mezők törlése;
  • mezők megváltoztatása.

Meglévő mezők olvasása

A keresési minta végrehajtásához egy olyan sablont használ (lásd a 2. listát), amely különbözik az 1. listán láthatótól. Ez azért van, mert a bejegyzést, a törlést és a csere egyetlen mezőben történik, és a kimenet minden mezőben megjelenik.

A listázási transzformáció az 1. listának harmadik sorában történik. Két alrészletre tagolódik - ezek a 3. és 4. sorok a 2. listában. Itt az OpenView és az Execute módszerek kerülnek végrehajtásra.

Ezután a stringek tömbje olvasható. Ne feledje, hogy a SELECT lekérdezésben a mezők csak név szerint jelennek meg. Ebben az esetben a "*" érték nem működik. Az adatok olvasása közben meg kell adni a mezők számozását (Record.StringData (1)), egy egységgel (1) kezdve.

A 2. felsorolás egy példát mutat be az ACDSee 10 Photo Manager.msi fájl Tulajdonságtábla összes mezőjének (Tulajdonság, Érték) összes olvasására:

Listázás 2. Mezők olvasása a megadott táblázatban

Állítsa be az obj = CreateObject ("WindowsInstaller.Installer")

Állítsa be az ob = obj.OpenDatabase fájlt ("C: ACDSeeACDSee 10 Photo Manager.msi", 0)

Megtekintés = ob.OpenView ("Tulajdonság SELECT, Érték FROM Tulajdonság")

Set Record = Megtekintés.Fetch

Ha a rekord nincs, akkor kilépjen

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

Állítsa be a nézetet = Semmi

Új mezők létrehozása

Az új mezők létrehozása gyakran használatos, például, hogy írja le a sorozatszámot az elosztó készletben. Ehhez adja hozzá a PIDKEY mezőt a Tulajdonságtábla megfelelő értékével, amely tartalmazza a termék sorozatszámát. Új mező hozzáadásához a kurzort a kívánt táblára kell helyezni (lásd a 3. ábrát), és a jobb egérgombbal a tetszőleges részre kattintva jelölje be a Sor hozzáadása vagy nyomja meg a billentyűkombinációt. Az eredményül kapott párbeszédpanel felsorolja az elérhető mezőket. A szükséges értékek ugyanabban az ablakban rendelhetők hozzá.

3. ábra: A paraméter megváltoztatása

Hasonló művelet programozható (lásd a 3. listát). Ehhez hívja a WindowsInstaller.Installer objektumot. Az 1. listán szereplő sablon alapján létrehozzuk a listát 3. Az OpenDatabase módszer második paramétereként meg kell adnunk az 1-et, mivel az adat írási művelet végrehajtása megtörtént.

A lista legnehezebb része a kérelem megfelelő formázása. Az INSERT INFO lekérdezés sajátossága az, hogy az első zárójelben, amelyben a mező neve meg van adva, a szülőnek meg kell adnia a mező nevét. A lekérdezésben szereplő összes paraméter neve szerepel; minden hozzárendelhető érték idézőjelben szerepel, és végül a mezők és táblázatok neve kis- és nagybetűkre érzékeny.

Listázás 3. Új attribútum létrehozása egy táblázatban

Állítsa be a = CreateObject ("WindowsInstaller.Installer")

Állítsa be a b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("INSERT INTO Property.

(Property.Property, Property.Value) VALUES ("PIDKEY", "1234567890") ") Végrehajt

A meglévő mezők eltávolítása a táblából

Egy mező eltávolítása a következő algoritmus szerint történik:

  • Állítsa a kurzort azon a táblázaton, amelyen törölni kívánja a paramétert;
  • Állítsa a kurzort a törölni kívánt paraméterre a táblázatban;
  • Nyomja meg a billentyűzet vagy a jobb egérgombot, és a helyi menüben: DELETE;
  • erősítse meg a paraméter törlésének szándékát.

Ugyanez a probléma megoldható szoftver (lásd. 4. listát) a sablon használatával 1. Annak érdekében, hogy biztosítsák a felvétel lehetőségét a táblázatban kell állítania egy második paramétert a módszer OpenDatabase értéke egy (1).

Lista 4. Meglévő attribútum törlése egy táblázatban

Állítsa be a = CreateObject ("WindowsInstaller.Installer")

Állítsa be a b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("DELETE FROM Property WHERE" PIDKEY "=" 1234567890 ")") Végrehajt

A meglévő mezők értékeinek módosítása

Módosítsa az értéket úgy, hogy a kurzort a kívánt cellába helyezi a bal egérgombbal való dupla kattintással (lásd a 3. ábrát).

Az ingatlan programváltozását ugyanazon szabályok végzik. Az előző két esethez képest csak a lekérdezés változik.

Az 5-ös lista letiltja az eszközdetektor működését.

Listázás 5. A meglévő táblaterületek értékeinek módosítása

Állítsa be a = CreateObject ("WindowsInstaller.Installer")

Állítsa be a b = a.OpenDatabase ("C: acdseeACDSee 10 Photo Manager.msi", 1)

b.OpenView ("UPDATE Feature SET Level =" 0 "WHERE Feature =" DevDetect "") Végrehajt

Figyelembe véve a javasolt verziót, az olvasó könnyen vagy egy VBScript parancsfájl segítségével, vagy az orca.exe program segítségével nagymértékben megkönnyíti a szoftver tömeges telepítésének feladatát, ami sok időt és energiát takarít meg.

Kapcsolódó cikkek