Registry Schlüssel suchen und neu erstellen
Hallo Forenmitglieder
Habe eine ziemlich knifflige Herausforderung. Ich habe Windows 10 Arbeitsstationen, welche nicht an einer AD angebunden sind. Somit kann ich nicht mit den AD GPOs arbeiten. Die lokalen GPOs haben gewisse Einträge nicht.
Das Problem ist wie folgt.
Ich habe Benutzer, welche sich über RDP an ihre Maschine im Geschäft anmelden. Bei Windows 10 ist beim Startmenu das Herunterfahren der Maschine in einer RDP Session möglich. Genau das möchte ich verhindern. Mit der registry Option NoClose könnte ich das Menu unsichtbar machen (da gibt es eine lokale Richtlinie), aber diese gilt generell für die Maschine. Das würde bedeuten, dass wenn der Benutzer sich lokal ander Arbeitsstation anmeldet, auch kein Herunterfahren knopf vorhanden ist. Das Herunterfahren Knopf soll aber nur in der RDP Session ausgeführt werden.
Ich habe nun folgendes herausgefunden.
Wenn sich der Benutzer an einer RDP Session anmeldet, wird ein neuer Schlüssel erstellt. Wie z.B
KEY_CURRENT_USER\Volatile Environment\17
SESSIONNAME REG_SZ Console
CLIENTNAME REG_SZ
Das Problem ist jedoch, dass die Zahl, in diesem Beispiel 17, jedes Mal neu erstellt wird.
Meine Idee wäre gesesen eine Batch zu schreiben, welche in der Registry den REG_SZ Schlüssel CLIENTNAME sucht. Wenn dieser vorhanden ist, dass ist eine Remotesession am laufen. Dann soll der NoClose Registry Schlüssel geschrieben werden und mit gpupdate /force alles sofort aktualisiert werden. Beim ausloggen von der RDP Session, soll der entsprechende Schlüssel
KEY_CURRENT_USER\Volatile Environment\17 <--- die Randomzahl gelöscht werden. Somit wird auch der Unterwert CLIENTNAME gelöscht. Meldet sich der Benutzer lokal an, wird nochmals überprüft, ob der REG_SZ CLIENTNAME vorhanden ist. Wenn nein, soll nichts unternommen werden.
Meldet sich der Benutzer neu an die RDP Session an, wird ein neuer REG_SG Schlüssel generiert z.B. KEY_CURRENT_USER\Volatile Environment\6 mit den entsprechenden CLIENTNAME REG_SZ
Das macht es schwierig diesen Schlüssel abzufangen.
Dazu kommt noch, dass die Output Dateien HKEY_CURRENT_USER enthalten. Möchte ich aber mit reg delete arbeiten müsste HKEY_CURRENT_USER in HKCU abgeändert werden. Das wird für meine Kenntnisse sehr komplex
Ich habe mal mit ein paar Batch Dateien versucht etwas zu basteln, beisse aber in die Tischplatte. Ich kriege es nicht hin.
Meine Batch Dateien lesen im Augenblick nur die Registry aus. Hier ein Beispiel
VolEnvQuery.cmd
@echo off
echo "Liest das Volatile Enfironment aus"
rem reg query "HKCU\Volatile Environment" /s > "%~dp0regquery.txt"
reg query "HKCU\Volatile Environment" /s /v "CLIENTNAME">"%~dp0regquery.txt"
SetVolEnvOut.cmd
echo off
rem PowerShell.exe -WindowStyle Hidden "unterdrückt die Powershell Konsole
PowerShell.exe Set-ExecutionPolicy Unrestricted
PowerShell.exe "%~dp0VolEnv.ps1"
PowerShell.exe Set-ExecutionPolicy Restricted
$OrgWSLoc = Get-Location
Get-Content -Path "$OrgWSLoc\regquery.txt" | select -last 4 | select -first 1 | Out-File "$OrgWSLoc\output.txt"
Könnte mir jemand eine Lösung anbieten, welche ich verwenden könnte? Ich weiss sonst nicht, wie ich das Problem lösen könnte
Danke im Voraus für Eure Hilfe.
Habe eine ziemlich knifflige Herausforderung. Ich habe Windows 10 Arbeitsstationen, welche nicht an einer AD angebunden sind. Somit kann ich nicht mit den AD GPOs arbeiten. Die lokalen GPOs haben gewisse Einträge nicht.
Das Problem ist wie folgt.
Ich habe Benutzer, welche sich über RDP an ihre Maschine im Geschäft anmelden. Bei Windows 10 ist beim Startmenu das Herunterfahren der Maschine in einer RDP Session möglich. Genau das möchte ich verhindern. Mit der registry Option NoClose könnte ich das Menu unsichtbar machen (da gibt es eine lokale Richtlinie), aber diese gilt generell für die Maschine. Das würde bedeuten, dass wenn der Benutzer sich lokal ander Arbeitsstation anmeldet, auch kein Herunterfahren knopf vorhanden ist. Das Herunterfahren Knopf soll aber nur in der RDP Session ausgeführt werden.
Ich habe nun folgendes herausgefunden.
Wenn sich der Benutzer an einer RDP Session anmeldet, wird ein neuer Schlüssel erstellt. Wie z.B
KEY_CURRENT_USER\Volatile Environment\17
SESSIONNAME REG_SZ Console
CLIENTNAME REG_SZ
Das Problem ist jedoch, dass die Zahl, in diesem Beispiel 17, jedes Mal neu erstellt wird.
Meine Idee wäre gesesen eine Batch zu schreiben, welche in der Registry den REG_SZ Schlüssel CLIENTNAME sucht. Wenn dieser vorhanden ist, dass ist eine Remotesession am laufen. Dann soll der NoClose Registry Schlüssel geschrieben werden und mit gpupdate /force alles sofort aktualisiert werden. Beim ausloggen von der RDP Session, soll der entsprechende Schlüssel
KEY_CURRENT_USER\Volatile Environment\17 <--- die Randomzahl gelöscht werden. Somit wird auch der Unterwert CLIENTNAME gelöscht. Meldet sich der Benutzer lokal an, wird nochmals überprüft, ob der REG_SZ CLIENTNAME vorhanden ist. Wenn nein, soll nichts unternommen werden.
Meldet sich der Benutzer neu an die RDP Session an, wird ein neuer REG_SG Schlüssel generiert z.B. KEY_CURRENT_USER\Volatile Environment\6 mit den entsprechenden CLIENTNAME REG_SZ
Das macht es schwierig diesen Schlüssel abzufangen.
Dazu kommt noch, dass die Output Dateien HKEY_CURRENT_USER enthalten. Möchte ich aber mit reg delete arbeiten müsste HKEY_CURRENT_USER in HKCU abgeändert werden. Das wird für meine Kenntnisse sehr komplex
Ich habe mal mit ein paar Batch Dateien versucht etwas zu basteln, beisse aber in die Tischplatte. Ich kriege es nicht hin.
Meine Batch Dateien lesen im Augenblick nur die Registry aus. Hier ein Beispiel
VolEnvQuery.cmd
@echo off
echo "Liest das Volatile Enfironment aus"
rem reg query "HKCU\Volatile Environment" /s > "%~dp0regquery.txt"
reg query "HKCU\Volatile Environment" /s /v "CLIENTNAME">"%~dp0regquery.txt"
SetVolEnvOut.cmd
echo off
rem PowerShell.exe -WindowStyle Hidden "unterdrückt die Powershell Konsole
PowerShell.exe Set-ExecutionPolicy Unrestricted
PowerShell.exe "%~dp0VolEnv.ps1"
PowerShell.exe Set-ExecutionPolicy Restricted
$OrgWSLoc = Get-Location
Get-Content -Path "$OrgWSLoc\regquery.txt" | select -last 4 | select -first 1 | Out-File "$OrgWSLoc\output.txt"
Könnte mir jemand eine Lösung anbieten, welche ich verwenden könnte? Ich weiss sonst nicht, wie ich das Problem lösen könnte
Danke im Voraus für Eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 381525
Url: https://administrator.de/forum/registry-schluessel-suchen-und-neu-erstellen-381525.html
Ausgedruckt am: 07.04.2025 um 20:04 Uhr
12 Kommentare
Neuester Kommentar
Boardsuche
Herunterfahren RDP Windows 10 verhindern
Herunterfahren RDP Windows 10 verhindern
Zitat von @Ralus67:
Hallo Uwe
Wenn du diesen Eintrag entfernst, kannst du, wenn du dich lokal an der Arbeitsstation anmeldest, diese auch nicht mehr herunterfahren, da der Knopf ebenfalls fehlt.
Ich fasse nochmals zusammen:
Arbeitsstation A ist die Arbeitsstation, welche im Geschäft läuft (diese ist nicht an einer AD angebunden)
Benutzer meldet sich von zu Hause aus über RDP an Arbeitsstation A an. Herunterfahren ist deaktiviert.
Nun kommt der Benutzer ins Geschäft und arbeitet an Arbeitsstation A und möchte diese aus irgend einem Grund herunterfahren. Geht nicht, da er keine Berechtigung hat
Runterfahren können sie die Kiste auch auf andere Weise trotzdem auch wenn der Eintrag dort nicht vorhanden ist! Ist also Blödsinn.Hallo Uwe
Wenn du diesen Eintrag entfernst, kannst du, wenn du dich lokal an der Arbeitsstation anmeldest, diese auch nicht mehr herunterfahren, da der Knopf ebenfalls fehlt.
Ich fasse nochmals zusammen:
Arbeitsstation A ist die Arbeitsstation, welche im Geschäft läuft (diese ist nicht an einer AD angebunden)
Benutzer meldet sich von zu Hause aus über RDP an Arbeitsstation A an. Herunterfahren ist deaktiviert.
Nun kommt der Benutzer ins Geschäft und arbeitet an Arbeitsstation A und möchte diese aus irgend einem Grund herunterfahren. Geht nicht, da er keine Berechtigung hat
Min jung, ein User der Mitglied der lokalen Administratoren ist kann alles verändern und machen auch deine Beschränkungen wieder rückgängig, deswegen bringt deine Bastelei hier rein gar nichts, Administratoren dürfen nun mal einfach alles an der Kiste. Also die User in eine als aller erstes in eine andere Gruppe packen. Möglichkeiten zum Runterfahren lassen sich auf andere Weise geben, bspw. über einen Task den der User anwirft.
Dann sind sie aber in einer Gruppe oder über eine verschachtelte Mitgliedschaft Mitglied einer Gruppe die die Kiste herunterfahren darf und das ist der Fehler.
Man kann es nicht oft genug vorbeten
https://social.technet.microsoft.com/Forums/sharepoint/en-US/0f1bb07c-54 ...
Man kann es nicht oft genug vorbeten
https://social.technet.microsoft.com/Forums/sharepoint/en-US/0f1bb07c-54 ...
Nein, auch in Workgroups kein Problem.
Das ist eine Systemweite Einstellung, die kann sich nicht über die Nutzerrechte in den lokalen Policies hinwegsetzen.
Probiere es mal selber aus. Erstelle dir eine virtuelle Window 10 Maschine und führe eine RDP Session zu dieser Maschine aus. Du wirst als "normalen" Benutzer das Herunterfahren haben.
Weiß ich, das versuche ich dir ja gerade klar zu machen. Nehme den Benutzern generell erst mal das Recht herunterzufahren, das geht auch lokal ohne Domäne, dann gibst du ihnen die Möglichkeit per Task der mit entsprechenden Rechten ausgestattet ist und Verknüpfung auf dem Desktop oder Startmenü um die Kiste runter zu fahren, fertig. Anders herum wirst du nie verhindern das sie egal mit welchem Mittel cmd/powershell/sysinternals/etc. die Kiste auszuschalten!Das ist eine Systemweite Einstellung, die kann sich nicht über die Nutzerrechte in den lokalen Policies hinwegsetzen.