Paint.Net MSI

Mostanában elsősorban MSI telepítők gyártásával töltöm az időm. Ezeket a csomagokat arra használom, hogy Group Policyból terjesszem a felhasználóknak. A Group Policy háromféle módszertan szerint képes MSI csomagokat telepíteni (legalábbis a Windows Server 2003-ban. Meg kellene néznem, hogy a 2008-ban ez hogyan működik).
– Comupter ág/Assigned: Ha ide rakjuk a csomagot akkor a gépre minden interakció nélkül felkerül a csomag. Ebben az esetben Local System joggal települ a csomag
– User ág/Assigned: Ez egy igen érdekes lehetőség, ugyanakkor igen korlátozottan használható. A csomag elemeit adatfájl kiterjesztésekhez rendeli hozzá, valamint megjeleníti a programok shortcut-jait a Programs menüben. A program maga akkor települ, ha a felhasználó rákattint a shortcutra, vagy megpróbál megnyitni egy olyan adatfájlt, amihez a programot hozzárendelték. Ehhez a telepítési módhoz az telepítő csomagnak tartalmaznia kell plusz információkat. Ezeket az információkat tapasztalataim szerint csak a Microsoft Office tartalmazza, az is csak 2003-ig bezárólag.
– User ág/Published: Az itt publikált programok nem települnek automatikusan. Amit ide tettünk az megjelenik a Control Panel/Add or Remove Programs/Add New Programs alatt. Az ide publikált alkalmazásokat a felhasználó saját maga tudja feltelepíteni. Ebben az esetben a Windows Installer (msiexec) megemelt jogosultsággal fut, így a felhasználó az ide publikált programokat fel tudja telepíteni a gépre annak ellenére, hogy erre egyébként nem lenne joga. Ezzel el tudjuk érni, hogy a felhasználó rendszergazdai jog nélkül is tudjon telepíteni, ráadásul, csak olyan dolgokat, amiket mi határoztunk meg számára.
Én e harmadik módszert részesítem előnyben. Ezzel a módszerrel ugyanakkor van némi gond. A fent említett megemelt jog (elevated privileges) nem mindenható. Ha az MSI csomag készítője, csak a Windows Installerbe beépített standard lehetőségeket használt, akkor jól működik, ha viszont úgy nevezett Custom Action-ként külső programokat hajt végre az MSI csomagon belül, akkor ezek nem öröklik a Windows Installer jogait. Ennek az lehet a következménye, hogy az a csomag ami a Computer ágban hiba nélkül feltelepült a User ágban hibára fut. Erre a mechanizmusra sajnos az MSI csomagok készítői nem mindig figyelnek.
A Paint.Net amit így szerettem volna publikálni szintén ettől a hibától szenved. Ha az MSI csomagot a Computer ágban terítjük, akkor gond nélkül felmegy, ha a User ágban akkor kapunk egy hibát ami azt jelzi, hogy egy bizonyos registry kulcsra hozzáférés megtagadva hibát kap.
Ezzel most kicsit előreszaladtam, mert először is, hogyan lesz MSI csomagunk? Ha letöltjük a Paint.Net-et innen: http://www.getpaint.net/download.html akkor egy exe fájlt kapunk. Ez nem MSI, ezt nem tudjuk telepíteni. Szerencsénkre a fejlesztő megadta a lehetőségét annak, hogy MSI-t készítsünk belőle (http://www.getpaint.net/doc/latest/en/UnattendedInstallation.html). E leírás alapján el tudjuk készíteni az MSI-nket. Ez viszont a GPO User ágából nem települ. Sad
A hiba szerint a registry HKLM\SOFTWARE\Paint.NET ágához nem tud hozzáférni. Hogyan tudjuk orvosolni ezt a hibát?
Vegyük elő az Orca-t és készítsünk egy transzformációt (MST). Mi kerüljön bele ebbe az MST-be?
Valami olyan ami, a bejelentkezett felhasználónak jogot ad a fenti registry kulcshoz. Az Orca-ban a Registry táblában keressük meg ezt a kulcsot. Olyat kell keresnünk ahol a Root értéke 2 a Key SOFTWARE\Paint.NET és a Name *. Jegyezzük fel ennek a bejegyzésnek a Registry értékét. Ez lesz, amire hivatkozni fogunk.
Menjünk el a LockPermissions táblához. Itt készítsünk egy új bejegyzést. A paraméterei:
LockObject: a korábban feljegyzett registry érték
Table: Registry
Domain: [%USERDOMAIN]
User: [LogonUser]
Permission: 268435456
Mentsük el a transzformációt, és amikor a GPO-ban felvesszük a csomagot akkor ezt az MST fájlt adjuk hozzá a telepítőhöz.
Készen is vagyunk. Open-mouthed
Kategória: Windows Installer | Közvetlen link a könyvjelzőhöz.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s