Entschuldigung, das ist nicht möglich, zumindest nicht in dem Maße, wie Sie es wollen. Wie in den Kommentaren von Ƭᴇcʜιᴇ007 erwähnt, basiert die gesamte Windows-Zugriffskontrolle auf Benutzern. Jedem Prozess ist ein Token zugeordnet, mit dem festgelegt wird, unter welchem Benutzer er ausgeführt wird. Es gibt keinen Unterschied zwischen dem Ausführen einer Aktion und einem Programm, das unter Ihrem Konto ausgeführt wird, da Sie buchstäblich alles durch den einen oder den anderen Prozess ausführen. "Programme greifen Benutzer nicht an, Benutzer greifen Benutzer an."
Dabei greift praktisch jeder Prozess auf die Registry zu. Selbst wenn das Programm selbst nicht explizit auf die Registrierung zugreift, zeigt eine Untersuchung mit Process Monitor, dass jede GUI-App mit einer Bootload von Registry Reads beginnt, um herauszufinden, wie die grafischen Steuerelemente eingerichtet werden. Führen Sie Process Monitor für eine App aus, von der Sie glauben, dass sie die Registrierung nicht benötigt. du wirst überrascht sein.
Wenn Sie jedoch alle Schreibvorgänge und nur Schreibvorgänge blockieren möchten, gibt es tatsächlich etwas, das helfen kann. Windows hat ein Konzept der "Integritätsstufen", ein Teil der Benutzerkontensteuerung. Grundsätzlich kann ein Programm, das auf einer bestimmten Integritätsstufe ausgeführt wird, nicht in Objekte schreiben, die mit einer höheren Integritätsstufe gekennzeichnet sind. Normale Prozesse und normale Dateien (und Registrierungsschlüssel) haben die mittlere Integritätsstufe. Sie können Prozesse jedoch manuell mit der niedrigen Stufe starten. Laden Sie das PsExec- Tool herunter . Wenn Sie eine Eingabeaufforderung erstellen möchten, die nicht an normalen Stellen schreiben kann, führen Sie Folgendes aus:
psexec -l -i cmd
Der -l
Schalter stellt niedrige Integrität ein; Der -i
Schalter macht den Prozess interaktiv. Die resultierende Eingabeaufforderung kann nur an Stellen schreiben, die speziell als "Niedrige Integrität" gekennzeichnet sind.
C:\Users\Ben>reg add HKCU\Test ERROR: Access is denied.
Dieser Befehl funktioniert in einer normalen Eingabeaufforderung, jedoch nicht in dieser Art von gesperrter Eingabeaufforderung.