Registry

11/10/2007 - 10:45 von Christian Ellmann | Report spam
Hallo Leute,

ich möchte gerne den Wert für das I386 veràndern, da ich Windows Komponenten
nachinstallieren muss. Leider ist nicht gewàhrtleistet, dass I386 auf dem
lokalem Rechner vorhanden ist.

Ich hab versucht dies mit diesem Befehl zu ermittlen.
Microsoft.Win32.RegistryKey reg =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup",true);

Dies funktioniert auch, wenn ich die benötigten Schreibrechte auf der
lokalen Maschine oder über die Domaine besitze.
Melde ich mich nun mit einem Benutzer an, der keine Schreibrechte besitzt,
kann ich den Wert nicht veràndern.
Ich starte den sysocmgr Befehl zur Installation der Windowskomponenten. Dies
funktioniert auch ohne Probleme, da ich beim starten des Prozesses die
Adminkennung und das Adminpasswort mit übergeben kann.

Wie kann ich den I386 Pfad setzen, wenn ich keine Berechtigung habe. Bzw wie
kann ich Windows mitteilen, dass ich den Pfad als Administrator setzen
möchte.

mfg

Christian Ellmann
 

Lesen sie die antworten

#1 Kerem Gümrükcü
11/10/2007 - 11:22 | Warnen spam
"Christian Ellmann" schrieb im Newsbeitrag
news:OBZpXM%
Hallo Leute,

ich möchte gerne den Wert für das I386 veràndern, da ich Windows
Komponenten nachinstallieren muss. Leider ist nicht gewàhrtleistet, dass
I386 auf dem lokalem Rechner vorhanden ist.

Ich hab versucht dies mit diesem Befehl zu ermittlen.
Microsoft.Win32.RegistryKey reg =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup",true);

Dies funktioniert auch, wenn ich die benötigten Schreibrechte auf der
lokalen Maschine oder über die Domaine besitze.
Melde ich mich nun mit einem Benutzer an, der keine Schreibrechte besitzt,
kann ich den Wert nicht veràndern.
Ich starte den sysocmgr Befehl zur Installation der Windowskomponenten.
Dies funktioniert auch ohne Probleme, da ich beim starten des Prozesses
die Adminkennung und das Adminpasswort mit übergeben kann.

Wie kann ich den I386 Pfad setzen, wenn ich keine Berechtigung habe. Bzw
wie kann ich Windows mitteilen, dass ich den Pfad als Administrator setzen
möchte.

mfg

Christian Ellmann





Hallo Christian,

deine Frage ist ganz einfach zu beantworten: Wenn Du keine Rechte hast,
dann hast Du keine Rechte! Du wirst ohne Rechte den Schlüssel niemals
in einem laufenden NT-Basierten System àndern können. Was Du brauchst
ist einfach einen Benuterzkontext, der die Rechte hat in den Schlüssel zu
schreiben,
oder jemand mit diesen Rechten legt Dir die gleichen Rechte auf diesen Key
damit Du den beschreiben kannst. Kurzum: Es muss in der Schlüssel ACL eine
ACE geben, die Dir den Zugang mit Schreibrechten zu dem Schlüssel gewàhrt.
Das kann zum einen ein Benutzer sein, der in der Schreibrechte Liste
aufegführt
ist, für den Du Passwörter und Benutzernamen hast, oder ein Prozess oder was
auch immer, das eine Benutzerkennung hat, die Rechte Schreiben/Lesen auf den
Schlüssel haben. Anders ist das in einem "laufenden" System nicht machbar.
In
einem nicht laufenden System über ein Nicht-NT System gibt es einige
Möglichkeiten,
aber die sind hier sicherlich nicht von interesse und will ich auch mal
nicht erwàhnen.

Was Du machen kannst, ist deinem Programm einen "Kontextwechsel" zu
ermöglichen,
in dem Du einen bestimmten Teil deines Programmes mit ausreichend Rechten,
also
z.B. Adminrechten laufen lassen kannst und dann, nach dem erledigen der
Aufgabe
sofort wieder in deinen eigenen Kontext wechselst, der Sicherheit halber,...

Ich habe auf meiner Seite ein Programm, in dem ich so eine Funktion
mal eingebaut hatte, aber das ich noch nicht fertigestellt habe, weil
ich keine Zeit hatte, Du kannst aber in Quellode in der Klasse
für das Formular "frmUserImpersonationForm.cs" exemplarisch
sehen, wie man kurz die Benutzerrechte eines z.B. Administrators
annehmen kann und dann schnell wieder in den eigenen Kontext wechseln
kann. Das Programm heist "RunWithServiceAccount/RWSAControlPanel"
zu finden rechts unten. Du brauchst eigentlich nur die Quellen von der
Controller Applikation. Ich habe aber schon lange nicht mehr am
Code gearbeitet, für den Fall, wenn was nicht gehen sollte. Code ist
GNU/GPL,...



Grüße

Kerem






Beste Grüsse / Best regards / Votre bien devoue

Kerem Gümrükcü


Best Quote: "Ain't nobody a badass with a double dose
of rock salt...", Kill Bill Vol.2

Latest Open-Source Projects: http://entwicklung.junetz.de
SIGN MY GUESTBOOK: http://entwicklung.junetz.de/guestbook/

"This reply is provided as is, without warranty express or implied."

Ähnliche fragen