Programozás Delphi

Az interneten találtam egy másik érdekes modul - RunAsSystem. célja, hogy az alkalmazás futtatásához az NT AUTHORITY jogokat. És ami a felhasználó nem szeretné emelni a jogot, hogy a rendszer szintjén. És akkor véletlenül gondolta - más alkalmazásokat rendszer jogosultságokkal biztosan jó, mintha, hogy elindítsa az alkalmazást nevében a rendszer? Ne írjon, sőt, a boot loader a programot, ez nem komoly a dolog. Ez az első megoldás, ami eszébe jutott (összes változás történt a project file):
Minden, ami a kérelem indításkor - Létrehoz egy példányt a NT AUTHORITY jogokat. A paraméter „/ system” (nevezhetjük másképp) szükséges ahhoz, hogy ne essen bele egy végtelen ciklusba.
Ez a megoldás, bár elég hatékony, van egy kis hiba. Azt hiszem, a legfigyelmesebb kitalálta, mi ez - ha az indítás időpontjában az alkalmazás parancssori paramétert „/ system”, az alkalmazás fog futni a jogokat a fiókot, amely alatt a felhasználó dolgozik, hogy nem logikus (és elfogadhatatlan számunkra).
Korrigált meglehetősen egyszerű - megtalálni a parancssori paramétert „/ system” kell ellenőrizni, melyből fiók indítottunk. Lehet csak ellenőrzi a felhasználónév fut az alkalmazás.
Az így kapott nevet össze lehet hasonlítani a neve „rendszer”, de a fogás az, hogy GetUserName függvény a rendszer felhasználói nevet alapján az operációs rendszer locale. Azaz, egy olyan rendszerben, egy angol lokalizáció megkapjuk „rendszer”, de az orosz „rendszer”. Ez a módszer nem alkalmas, mert annak hiánya az egyetemesség. De mi majd hasonlítsa össze? biztonsági azonosító (SID) számlák! Funkció részesülő SID'a véve az alábbiak szerint:
Miután kiesett a parancssori hozzáteszi még egy csekket:
A végső alkalmazás indító kód a következő:
Persze ahhoz, hogy ez a munka, az szükséges, hogy a csoport „Rendszergazdák” felhasználó által bevitt rendszer jogosultsággal. Ez némileg korlátozza alkalmazhatóságát a kódot, de néha még mindig (még egy otthoni számítógép), amely nagyon hasznos lehet.
Ez minden, a siker a programozást!