![]() |
Autostart ohne Adminrechte
Hallo.
Ich würde gerne wissen, wie man bei einem Rechner ohne Adminrechte irgendwo im System hinterlegen könnte, das ein bestimmtes Programm nach dem Einloggen gestartet wird ? Zugriff auf Registry ist gesperrt (regedit führt zu einer Fehlermeldung "Zugriff verweigert bla") Ins Autostart vom Startmenü bekomm ich auch nix rein (und wenn, dann wirds irgendwie wieder automatisch entfernt beim anmelden bzw abmelden) Der Rechner ist in einer Domäne und es läuft XP Prof Programme können aber ausgeführt werden. kann man da evtl über eine API was drehen? oder evtl den Eintrag in die Gegistry für einen Autostart bei logon irgendwie über Delphi realisieren? ka ob das auch verweigert wird wie beim regedit Aufruf ?! |
Re: Autostart ohne Adminrechte
Werden vieleicht serverseitige Profile verwendet und deine Autostart-Eintrag vom Serverprofil beim nächsten Start überbügelt.
|
Re: Autostart ohne Adminrechte
Ändere bei der registry den Rootkey auf
Delphi-Quellcode:
var
reg:tregistry; begin reg:=tregistry.create; reg.rootkey:=HKEY_CURRENT_USER end; |
Re: Autostart ohne Adminrechte
was bringt das ändern auf current_user ?
ich vermute, das ich per programm (delphi) auf die registry zugreifen kann und mir nur regedit verwehrt wird ?! kann das sein? ich hab nicht viel möglichkeiten da viel rum zu testen. wo müsste ich den schlüssel anlegen fürs starten eines programms beim anmelden an windows? -> achja das mit dem überbügeln des startmenüs kann es schon sein, das es von dem profil kommt das vom server immer drüber gebügelt wird ;) |
Re: Autostart ohne Adminrechte
Auf HKLM hat man nur mit Administratorechten zugriff. HKCU ist der Schlüssel für jeden Bneutzer, dort werden benutzerspezifische Daten abgelegt und da hat der Bneutzer auch Schreibrechte. Was dort in dem Run Schlüssel steht, wird gestartet, wenn sich der Benutzer anmeldet.
Es scheint aber so zu sein, als wenn entweder die Profile auf dem Server liegen oder als wenn eine Schutzsoftware installiert wäre, die Änderungen immer wieder rückgängig macht bzw. Änderungen ohne Administratorrechten erst gar nicht zu lässt. Und die wird nicht ohne Grund installiert sein. |
Re: Autostart ohne Adminrechte
Wenn der PC schon in einer Domäne hängt, mit Windows 2000 oder 2003 Server nehm ich an, gibts doch da mächtige Tools, um Software vom Server aus direkt auf den Clients zu installieren. Ich hab jetzt gerade keinen Domänencontroller bei Hand :mrgreen: , aber prüfen kannst du das auch direkt lokal auf einem XP Prof. Starte mal da Programm gpedit.msc und wühl dich mal durch den Ast Computerkonfiguration/Windows-Einstellungen/Skripts... Dort kannst du Programme hinterlegen, die beim nächsten Computerstart installiert werden, und zwar unter dem SYSTEM Account. In Domänen ist das noch cooler, da kannst du nämlich direkt am Domänencontroller angegeben, welche Clients die Programme sollen beim Computerstart... Da die Ausführung unter dem System Account abläuft, kannst du auch problemlos auf die HKLM zugreifen.
Luckie hat vällig Recht, dieser Registry Ast ist für normale Benutzer nur lesend zugreifbar. Aber auch da kann man Abhifle schaffen, in dem man als Admin bestimmten Zweigen auch für normale Benutzer Schreibrechte verpasst. Ob das aber sinnvoll ist, sei mal dahingestellt. Einfach im Regedit.exe mit Rechtsklick auf den Registryzweig und die Berechtigngen setzen. |
Re: Autostart ohne Adminrechte
ähm ich denke nicht, das ich ohne admin rechte remote auf die registrierung zugreifen kann
und Einfach im Regedit.exe mit Rechtsklick auf den Registryzweig und die Berechtigngen setzen. das geht wie gesagt nicht, weil regedit irgendwie verriegelt ist. fremdsoftware ist nicht drauf, die da was löscht. das wird das benutzerkonto sein, das zentral abgelegt ist. aber ich probiers mal, ob ich im current_user unter run was eintragen kann, per delphi prog. |
Re: Autostart ohne Adminrechte
Ich hab dich falsch verstanden. Ich wusste nicht dass es um deinen Rechner geht wo du nichts in die registry schreiben kannst. Meine Vorschläge funzen natürlich nur als Admin.
In den HKCU Ast der Registry kannst du aber definitiv was in den Run Schlüssel schreiben (Es sei denn das ist alles auf Domain Ebene ebenfalls gesperrt)... Das ist dann auch nur für dich, und betrifft nicht die anderen User des Systems... |
Re: Autostart ohne Adminrechte
ok dann probier ich das mal mit HKCU
wenn die registry auch an der domain hängt, woran würde ich das erkennen ? und was genau würde da immer überschrieben werden? auch HKCU ? |
Re: Autostart ohne Adminrechte
Probiers doch einfach mal aus... ich denke nicht dass es in der HKCU zu Problemen kommt.
|
Re: Autostart ohne Adminrechte
So hab mal zwei functionen geschrieben aber seht selbs:
(bitte nicht aufrechtschreibfehler achten bin ersz 14 )
Delphi-Quellcode:
function IstAdmin: Boolean; const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; DOMAIN_ALIAS_RID_ADMINS = $00000220; var hAccessToken: THandle; ptgGroups: PTokenGroups; dwInfoBufferSize: DWORD; psidAdministrators: PSID; x: Integer; bSuccess: BOOL; begin Result := False; bSuccess:=False; ptgGroups:=nil; psidAdministrators:=nil; try bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken); if not bSuccess then begin if GetLastError = ERROR_NO_TOKEN then bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken); end; if bSuccess then begin GetMem(ptgGroups, 1024); bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize); if bSuccess then begin AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, psidAdministrators); {$R-} for x := 0 to ptgGroups.GroupCount - 1 do if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then begin Result := True; Break; end; {$R+} end; end; finally if bSuccess then CloseHandle(hAccessToken); if Assigned(ptgGroups) then FreeMem(ptgGroups); if Assigned(psidAdministrators) then FreeSid(psidAdministrators); end; end; function CreateAutorunEntry: Boolean; var Reg: TRegistry; AKind: TAutorunKind; begin Result:=False; Reg := TRegistry.create; try if IstAdmin = True then Reg.RootKey := HKEY_LOCAL_MACHINE else Reg.Rootkey:= HKEY_CURRENT_USER; if Reg.RootKey = HKEY_LOCAL_MACHINE then Akind:=akRun; if Reg.Rootkey = HKEY_CURRENT_USER then AKind:=akUserRun; case AKind of akRun, akUserRun : Result:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True); end; Reg.WriteString({Name des eintages},{Dateipfad}); finally Reg.Free; end; end; |
Re: Autostart ohne Adminrechte
Warum pushst du einen so alten thread?
Und wenn du die funktionen selber geschrieben hast: Warum sind dann die variablen im ersten quelltext nach der ungarischen notation benannt und im zweiten nicht mehr? Warum sind die formatierungen so unterschiedlich? Kaufe dir naemlich nicht ab, dass du den ersten quelltext selber geschrieben hast ;) grueße win32 |
Re: Autostart ohne Adminrechte
Zitat:
![]() ![]() |
Re: Autostart ohne Adminrechte
sry wahrscheinlich habe ich das falsch formuliert, ich hab den quellcode nach meien voestellungen umgeschrieben und an meine bedürfnisse angepasst daher die formatirunegn. ganz alleine hääte ich das nie nie niemals hinbekommen .
mfg dabgerfreak |
Re: Autostart ohne Adminrechte
übrigens die zweite function createautorunentry ist selber geschrieben
|
Re: Autostart ohne Adminrechte
sieht man auch ;)
und die erste funktion ist nicht veraendert .. naja however ;3 |
Re: Autostart ohne Adminrechte
doch war schon da wurde der rückgabe wert noch irgentwie anders überprüft
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz