
A mellékelt "CheckActivate.vbs" szkripttel ellenőrizhető, hogy egy gépet aktiváltak-e. A "Remaining.vbs" szkript pedig kiírja, hogy még hány nap áll rendelkezésünkre, ha nem aktiváltunk.
Hol tárolódik az aktiválás eredménye?
A Windows feltelepítése után a %systemroot%system32 mappában található egy WPA.DBL nevű fájl (WPA = Windows Product Activation). Miután sikeresen megtörtént az aktiválás, itt kerül tárolásra az eredmény. Létezik egy módszer, amellyel egy estleges újratelepítés után kikerülhető az ismételt aktiválás, de tapasztalataink azt támasztják alá, hogy nem minden körülmények között működőképes. Lényege, hogy WPA.DBL fájlt el kell menteni, ezután következhet az újratelepítés, majd csökkentett módban indítva a gépet vissza kell másolni az eredeti helyére, felülírva a meglévő példányt. Ez csak ugyanazon hardver konfiguráció alatt használható, de ismételten felhívnánk a figyelmet, hogy nem mindig működik.
Hogy lehet programozási módszerekkel megállapítani, hogy egy gépet kell-e aktiválni?
A Microsoft a Windows XP-vel nem csak az aktiválást vezette be, hanem annak interfészeit a programozók rendelkezésére bocsátotta: a "WindowsProductActivation" nevű osztály tárolja a szükséges információkat. Természetesen ezekkel az eszközökkel nem játszható ki a termékaktiválás. Hogy tudjuk eldönteni, hogy egy adott gépen futó XP-t szükséges-e aktiválni? Ellenőrizzük az osztály "ActivationRequired" tulajdonságát. Ha értéke 1 akkor igen, ha 0 akkor nem. A megvalósítás csak pár lépésből áll: le kell kérdezni az osztály összes tulajdonságát (*) vagy csak az "ActivationRequired"-et és egy IF utasítással fel kell dolgozni a kapott eredményt. VBScript-tel az alábbiak szerint lehet megvalósítani:
Set ActivationStatus = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_WindowsProductActivation")
for each Activation in ActivationStatus
if Activation.ActivationRequired = 1 then
Wscript.Echo "Aktiválás szükséges."
end if
if Activation.ActivationRequired = 0 then
Wscript.Echo "A rendszer már aktiválva van."
end if
next
Figyelem! A termékaktiválást megkerülő, feltörő segédprogramok a fenti szkriptben is okozhatnak működési hibát. Ugyanis ezek a "WindowsProductActivation" kezelésében álló állományokat módosítják.
Hány napig használható még a rendszer aktiválás nélkül?
Alapértelmezésben 60 napig lehet elodázni az aktiválást. A hátralévő időre a felbukkanó ballonok figyelmeztetnek, de ha éppen nem láthatók, legegyszerűbb egy rövid szkriptet lefuttatni. Szintén a "WindowsProductActivation" osztályt kell segítségül hívnunk, ezúttal a "RemainingGracePeriod" tulajdonságára lesz szükség. Az itt található szám egyenlő a hátralévő napok számával.
Set ActivationStatus = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_WindowsProductActivation")
for each Activation in ActivationStatus
Wscript.Echo "Még " & Activation.RemainingGracePeriod & " napig használható a rendszer aktiválás nélkül."
next
Milyen portokon keresztül történik az aktiválás?
A kérdés lényege, hogy tűzfal, router és egyéb védelmi/forgalomkorlátozó eszközök mögött található gépeket is lehet-e aktiválni? Nos igen, ugyanis a szabványos 80-as http és 443-as titkosított https forgalommal zajlik. A tesztelés legegyszerűbb módja az alábbi sorok beírása a böngésző címsorába:
http://www.microsoft.com:80
https://www.microsoft.com:443
Ha egyik esetben sem kapunk hibaüzenetet, az aktiválás is hibátlanul fog működni az adott hálózatról.