Jump to content
Sign in to follow this  
druckerheini

Berechtigung auf HKCU-Subkey setzen

Recommended Posts

Hallo!

 

Ich habe da eine ganz schräge Sache, vielleicht hat jemand eine Idee:

 

Eine Anwendung benötigt zwingend Schreibrechte auf einen bestimmten Subkey von HKEY_CURRENT_USER. Nun hat der Benutzer ja normalerweise diese Schreibrechte, doch wenn er sie aus irgendeinem Grund nicht hat, geht ziemlich viel kaputt, dieser Fall sollte auf alle Fälle vermieden werden. (Nein, ich habe diese Anwendung nicht programmiert...)

 

Daher möchte ich vor dem Start der Anwendung sicherstellen, daß der Benutzer die Rechte hat. Um die Rechte auf den Key jedoch per regperm.exe setzen zu können, braucht man Administratorrechte, und die hat der Benutzer nicht.

 

Ich kann jedoch ein Script unter dem Systemaccount laufen lassen. Nur: Wie komme ich da am besten an des Benutzers Registry ran? Über HKEY_CURRENT_USER geht's ja nicht, ich möchte ja nicht die Registry des Systemaccounts ändern. Die einzige Idee, die ich bisher hatte, war, irgendwo die SID des Benutzers herauszusuchen und dann per HKEY_USERS\<SID> zuzugreifen, was mit regperm.exe auch geht.

 

Doch geht es auch ohne diesen Klimmzug? Oder hat zumindest jemand eine Idee, wie man 100% zuverlässig die SID des gerade angemeldeten Benutzers bestimmen kann, so daß ich mit HKEY_USERS weiterkomme?

 

Danke für jede Idee.

Share this post


Link to post
Share on other sites
Du könntest es mittels GPO im AD regeln: Eingeschränkte Gruppen

AD ist nicht vorhanden. Mittlerweile habe ich ein Freeware-Tool user2sid.exe gefunden, das zu einem Benutzer die SID ausspuckt, damit könnte ich den HKEY_USERS-Key zusammenbauen und mit regperm.exe verwenden.

 

Geht es jedoch nicht auch ohne diese Krücken?

Share this post


Link to post
Share on other sites

Geht es jedoch nicht auch ohne diese Krücken?

 

Gibts den Schlüssel nicht auch unter HKEY_USERS\.DEFAULT, zumindest im Ansatz. Dann könntest Du hier die passenden Rechte setzen.

Share this post


Link to post
Share on other sites

Hallo,

 

Oder hat zumindest jemand eine Idee, wie man 100% zuverlässig die SID des gerade angemeldeten Benutzers bestimmen kann, so daß ich mit HKEY_USERS weiterkomme?

 

Neben User2SID kannst Du auch PsGetSID aus den PsTools verwenden - ich finde dieses zumindest Tool recht gut und übersichtlich mit intelligenten Optionen. Download siehe hier: PsGetSid .

 

Bezüglich der Rechteänderung an sich wurde Subinacl schon genannt.

 

Viele Grüße

olc

Share this post


Link to post
Share on other sites

Was ich nicht so ganz verstehe: Wieso hat ein User diese Schreibrechte nicht ? Normalerweise scheint er sie ja zu haben, aber manchmal eben auch nicht. Ist das ein Fehler in der Setuproutine der eingesetzten Anwendung ?

Share this post


Link to post
Share on other sites
Was ich nicht so ganz verstehe: Wieso hat ein User diese Schreibrechte nicht ? Normalerweise scheint er sie ja zu haben, aber manchmal eben auch nicht. Ist das ein Fehler in der Setuproutine der eingesetzten Anwendung ?

Nicht in dieser, aber offenbar in einer anderen Anwendung. Bei manchen Benutzern sind diese Berechtigungen verzockt, doch diese Anwendung reagiert darauf ganz seltsam, daher möchte ich auf alle Fälle sicherstellen, daß beim Start dieser Anwendung die Schreibrechte auf diesen Key gesetzt sind.

 

Danke für die Hinweise - damit sollte ich es auf alle Fälle hinkriegen. Doch einen anderen (direkteren) Weg als über HKEY_USERS\<SID> gibt es nicht?

Share this post


Link to post
Share on other sites

Hi, hab auch so meine Probleme damit....

 

Ich muss dem User Vollzugriff auf:

HKEY_CURRENT_USER\Software\Policies\

gewaehren.

 

Habe mal subinacl und regini ausprobiert aber bei beiden funzt es einfach nicht.

 

SUBINACL /VERBOSE /SUBKEYREG HKEY_CURRENT_USER\Software\Policies /GRANT=users=F

Elapsed Time: 00 00:00:00

Done: 0, Modified 0, Failed 0, Syntax errors 0

 

regini.exe \Registry\User\S-1-5-21-1202660629-1993962763-1343024091-1003\Software

\Policies [1 5 17]

REGINI: Failed to load from file '\Registry\User\S-1-5-21-1202660629-1993962763-

1343024091-1003\Software\Policies' (3) (3)

 

 

Weiss einer was ich da falsch mache? bin um jede Antwort dankbar

 

 

Hier noch ein VBS fuer die SID:

Set wshNetwork = CreateObject("WScript.Network")

strUser = wshNetwork.Username

 

strComputer = "."

 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objAccount = objWMIService.Get _

("Win32_UserAccount.Name="""& strUser &""",Domain=""test""")

 

strSID = objAccount.SID

 

WScript.Echo strUser

WScript.Echo strSID

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...