Wie eine Programmoption von einem Administrator festgelegt hat, dass der Benutzer nicht ändern kann?

StackOverflow https://stackoverflow.com/questions/1015542

  •  06-07-2019
  •  | 
  •  

Frage

Meine Anwendung muss eine Option beim Start lesen um zu überprüfen, ob es im schreibgeschützten Modus gestartet werden soll. Die Option sollte vom Benutzer nicht geändert werden dürfen.

Normalerweise mache ich das jetzt einen Wert in dem HKLM \ Software Abschnitt der Systemregistrierung verwendet wird. Der Administrator legt den Wert und die Benutzer können es nicht (sie haben keine Rechte Einträge in HKLM ändern) ändern.

Das Problem ist, dass auf einem Terminalserver (oder Citrix) Maschine diese alle Benutzer auswirkt. Ich möchte einen Weg, um herauszufinden, diese auf einer Basis pro Benutzer zu tun. Wie diese anderen umgehen? Gibt es einen Abschnitt in der Systemregistrierung für diese Art von pro Benutzer einstellen, dass der Benutzer nicht ändern kann?

Vielen Dank für alle Anregungen oder Kommentare!

War es hilfreich?

Lösung

Dies ist im Wesentlichen, was der HKEY_CURRENT_USER\Software\Policies Schlüssel ist für, das heißt ein Schlüssel innerhalb des benutzerspezifischen Teils der Registry, die standardmäßig ist schreibgeschützt für den Benutzer selbst.

Mit dem Abkommen sollte die Schlüsselhierarchie die ergänzen Sie bereits unter HKEY_CURRENT_USER\Software haben, z.B. wenn Ihre regelmäßigen Benutzereinstellungen unter HKEY_CURRENT_USER\Software\MyCompany\MyProgram gespeichert werden dann die geschützten Benutzereinstellungen (oder „Politik“ in MS-Jargon) sollten unter HKEY_CURRENT_USER\Software\Policies\MyCompany\MyProgram gespeichert werden

Beachten Sie, dass es nur eingestellten Werte unter diesem Schlüssel über Gruppenrichtlinienobjekte empfohlen und nie durch direkten Zugriff auf die Registry.

Andere Tipps

Das Konzept einer pro-Benutzer-Einstellungen Bereich, dass der Benutzer nicht verändert sich nicht wirklich sinnvoll -. Wenn sie Benutzereinstellungen sind „Sie“ (der Benutzer) erwarten zu können, um sie ändern

Ich kann von zwei Alternativen denken:

  • Teilen Sie Ihre Einstellungen in HKLM, haben aber eine andere Einstellung für jeden Benutzer und ein globaler Rückfall für Benutzer ohne die Einstellung Set Einstellung
  • Schreiben Sie sie in HKCU, aber verwenden die Registry-Sicherheits-APIs zu verhindern sie schriftlich zu. Sie werden wahrscheinlich brauchen Berechtigungen größer als die ihrigen zu verhindern, dass sie rückgängig gemacht, die Erlaubnis Änderungen. Ich mag es nicht wirklich diese Option, aber wenn Sie wollen, dass es folgen Sie wollen wahrscheinlich nicht mit dem beginnen RegGetKeySecurity und RegSetKeySecurity APIs. Diese Artikel interessant sein könnte als gut.

Ich persönlich denke, die erste Option die einfachste wäre, und auch würde bedeuten, weniger vertrackt Sachen in der Registrierungsstruktur des Benutzers. Hoffe, das hilft!

Wie wäre es zwei Einstellungen?

Set

1) Angabe eines Flag in HKLM, dass schreibgeschützt ist das Standardverhalten auf dieser Maschine.

2) Für alle Benutzer, die vollen Zugriff benötigen, setzen Sie ein Token in HKCU, die vollen Zugriff ermöglicht.

Das Token ein kryptographischer Hash etwas Salz sein könnte und den Benutzernamen, so dass es nicht kopiert werden konnten Erlaubnis an einen anderen Benutzer zu geben.

Warum Sie nicht speichern Optionen in Ihrer eigenen Datenbank? Es scheint sinnvoll und handlich genug, um (zumindest für mich 8)) Keine Probleme mit „portable“ Version Ihres Produkts zu machen. Kein Benutzer keine Einstellungen stört Sie nicht wollen, dass sie stören.

Was ist falsch mit HKCU statt HKLM? Dies wäre pro Benutzer. Leider kann er durch den Benutzer geändert werden, wenn der Benutzer weiß, wie die Registrierung zu bearbeiten und den Schlüssel finden.

  • Nehmen Sie eine der Dateien mit Ihrem Programm kommen, das nicht verändert werden soll (zumindest nicht durch den eingeschränkten Benutzer). Wenn es keine solche Datei ist, erstellen Sie eine nur für diesen Zweck.
  • den Administrator Lassen Set für die eingeschränkten Benutzer auf diese Datei nur Rechte zu lesen.
  • Im Programm prüfen, ob Sie Schreibzugriff auf die Datei haben.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top