Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
22. Jun 2010
statt "is2000"
if TJwWindowsVersion.IsWindows2000(false)then
vorher noch
uses ..., JwsclVersion;
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
21. Jun 2008
Ja was ist denn? Funktioniert es oder nicht?
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
25. Mai 2008
Du hast 3 Tokeninstanzen, die du nicht wieder löscht.
Wenn irgendwas nach ServiceToken := ... fehlschlägt, dann werden diese Instanzen nicht gelöscht. Also einzeln mit try/finally für nach jedem Create eins erstellen.
Create1
try
create2
try
finally
Free2
end;
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
23. Mai 2008
Eine Session (oder Sitzung) ist ein abgetrennter Bereich, der eigene WindowStations und Desktops besitzt (und einiges andere).
Jeder Benutzer, der sich per Winlogon einloggt, wird eine neue SessionID zugewiesen.
In Windows 2000 gibt es nur die 0. In XP bekommt der erste Benutzer die 0, alle anderen, 1 oder größer. Dienste tummeln sich immer in Session 0 und sind daher mit dem ersten...
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
23. Mai 2008
CreateWTSQueryUserTokenEx funktioniert nur unter Windows 2000. Unter XP kann es funkzen, muss aber nicht. Unter Vista funktioniert es nicht!
Damit dieser Desktopwechsel unter Vista nicht auftritt, musst man die TokenSessionID (Property) auf die jeweilige ID des Users setzen und dann damit das Programm starten.
var T,t2 : TJwSecurityToken;
S : TStartupInfo;
P :...
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
21. Mai 2008
Du willst also das Token vom Benutzer kopiere und nur Adminrechte einfügen? Nunja. Das müsste gehen. Man kann nur kein komplett neues Token erstellen, weil dafür eine Logon ID notwendig ist, die man von einen Logonprovider bekommt. Ka wie das geht. Im Moment macht das nur LsaLogonUser. Man kann aber eine vorhandene ID nutzen, die z.b. ein Benutzer beim Einloggen bekommen hat. Mein CreateToken...
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
21. Mai 2008
Wenn das Programm bereits besteht und es eben Adminrechte benötigt, dann macht man es so. Andernfalls müsste man ne Client-Serverbeziehung von vorne herstellen.
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
21. Mai 2008
1. XPElevation
Ich vermute mal, du hast nicht die Entwicklerquellcodeversion. Die ist immer Vorraussetzung, wenn man die internen Beispiele kompilieren will. Zudem ist XPElevation im Branch und nicht im Trunk das aktuelleste. Da arbeite ich noch dran.
2. Man kann immer ein anderers Token nehmen und dies mit CreateRestrictedToken nochmals einschränken. Und als SYSTEM kann man ein eigenes...
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
26. Feb 2008
Es ist aus sicherheitstechnischen Gründen untersagt, mit SYSTEM Rechten zu arbeiten. Zudem würde die gestartete Anwendung plötzlich mit dem dem SYSTEM Profil und Umgebungsvariablen arbeiten müssen. Da sind einige Sachen anders. Daher funktionieren einige Anwendungen nicht damit.
Aber man kann natürlich den Benutzer für den zu startenden Prozess mit der Administratorgruppe ausstatten. Das ist ja...
Forum: Win32/Win64 API (native code)
Delphi
by Dezipaitor,
26. Feb 2008
Tja es ist machbar. Ich habe es schon gemacht. Und ein anderer auch.
Allerdings was du vorschlägst, ist die Vordertüre ins Haus einfach offenstehen zu lassen und zudem noch die Schlüssel zum Tresor auf der Türschwelle.
Ein böses Programm könnte dein Programm ersetzen oder einfach nur den Dienst über die Pipe benachrichtigen, dass es ein (böses) Programm gestartet haben will. Die einzige...