Wie kann ich die PATH-Umgebungsvariable eines Benutzers ändern, ohne mich abzumelden?


22

Die Frage sagt so ziemlich alles aus; Ich habe Benutzer, die nicht berechtigt sind, ihre eigene PATHUmgebungsvariable zu bearbeiten. Wenn sie diese aus irgendeinem Grund ändern müssen, müssen sie sich abmelden, damit sich ein Administrator anmelden und die PATHfür sie ändern kann, bevor sich der Benutzer erneut anmeldet . Das ist nicht ideal. Kann es besser gemacht werden?


Nur neugierig - aber wie genau hindern Sie Benutzer daran, ihre eigene Standardumgebung zu ändern? Verweigern Sie ihnen nur den Zugriff auf Arbeitsplatz / Eigenschaften / Erweitert / Umgebungsvariable? Sie könnten HKCU / Environment noch mit einer Vielzahl von Methoden modifizieren.
Cooper


Gruppenrichtlinieneinstellungen? Nur ein Gedanke.
Simon Catlin

Antworten:


6

Sie können jederzeit eine Cmd-Shell mit Administratorrechten (oder einer anderen Runenmethode) aufrufen und den Pfad mit einem Tool wie SETX dauerhaft ändern. Bestehende Shells und / oder laufende Programme verwenden wahrscheinlich den alten Pfad, aber alle neuen Shells / Programme verwenden die neuen Einstellungen.


25

Für Konten ohne Administratorrechte:

Öffnen Sie "Benutzerkonten" und wählen Sie "Umgebungsvariablen ändern" ( http://support.microsoft.com/kb/931715 ).

In diesem Dialogfeld werden Ihre aktuellen Benutzervariablen sowie die Systemvariablen angezeigt. Möglicherweise müssen Sie eine lokale PATH-Variable hinzufügen, falls Sie dies noch nicht getan haben.

Klicken Sie beispielsweise auf Neu, um Ihren Pfad so zu aktualisieren, dass er das Python 3.3-Verzeichnis enthält:

Variablenname: PATH Variablenwert:% PATH%; C: \ Python33

Dadurch wird ein lokaler PATH erstellt, indem der aktuelle System-PATH verwendet und hinzugefügt wird.


2
Ich muss mir denken, dass diese Antwort " Ich habe Benutzer, die nicht die Berechtigung haben, ihren eigenen PFAD zu bearbeiten ..." dauerhaft besser ist als der Rest. Sehr schön gemacht. Fragen Sie sich, warum das Klicken auf "Arbeitsplatz" admin-geschützt ist, wenn dies nicht der Fall ist? Schützen Sie nicht lokale Felder genauso wie die Benutzeroberfläche, wenn Sie auf diese Weise darauf zugreifen.
Ruffin

10

Arbeitsplatz / Eigenschaften / Erweitert / Umgebungsvariablen. Dort vorgenommene Änderungen werden mit Ausnahme der bereits geöffneten Eingabeaufforderungsfenster sofort wirksam . Sie müssen sich nicht abmelden und wieder anmelden.

HINWEIS: Wenn Sie keinen Zugriff auf dieses Fenster haben, können Sie es möglicherweise über das Ausführungsfenster rundll32 sysdm.cpl,EditEnvironmentVariablesoder die Befehlszeile aufrufen.


regelmäßige Nutzer in meinem Netzwerk nicht in der Lage , ihre eigenen Umgebungsvariablen wie dies zu ändern, es sei denn ich diesen Bildschirm mit erhöhter privs über „Ausführen als ...“ oder etwas ähnliches öffnen kann, das wird für mich nicht Arbeit
ninesided

4

In einer Eingabeaufforderung können Sie Folgendes ausführen:

set PATH=C:\somedir;%PATH%

Dies ändert sich jedoch nur für die Eingabeaufforderung (und alle Apps, die über die Eingabeaufforderung gestartet werden). Angenommen, Sie möchten, dass dies auf alles angewendet wird, was der Benutzer ausführt, ändern Sie die Umgebungsvariablen des Benutzers. Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz", "Eigenschaften", "Erweitert", "Umgebungsvariablen" und fügen Sie unter "Benutzervariablen" eine Variable hinzu:

PATH = C:\whatever

Wenn sich der Benutzer anmeldet, wird dies dem systemweiten Pfad hinzugefügt.


Ich brauche die Reihenfolge der Einträge bereits in der PATH zu ändern, so dass das Hinzufügen von den Benutzervariablen zu entfernen für mich nicht funktioniert in diesem Fall
ninesided

setxWie bei Berzemus erwähnt, kann die System-PATH-Variable (der /mSchalter) permanent bearbeitet werden .
Pat

2

Der Benutzer kann an einer Eingabeaufforderung eine PATH-Variable festlegen, die die systemweite PATH-Variable überschreibt, auch wenn der Benutzer keine Administratorrechte besitzt. Die Änderung wird für neue Prozesse wirksam, die der Benutzer an dieser Eingabeaufforderung startet. (Der vorhandene Explorer-Prozess und alle anderen Prozesse, die der Benutzer ausführt, wenn die Änderung vorgenommen wird, "sehen" die Änderung nicht.)


1

Zusätzlich zu den obigen Antworten können Sie auch die Registrierung aktualisieren (was den Vorteil hat, dass sie skriptfähig ist):

Die PATH-Variable wird in HKEY_CURRENT_USER \ Environment gespeichert.

So lesen Sie den aktuellen Pfad:

reg query HKEY_CURRENT_USER\Environment /v PATH

So hängen Sie einen Wert c: \ somedir an den Pfad an:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Beachten Sie, dass Prozesse beim Start die Umgebung lesen, sodass Sie den Prozess neu starten müssen, damit er den neuen Pfad abruft.

Update: Eine andere Möglichkeit, die ich gefunden habe, ist das Ausführen von:

rundll32 sysdm.cpl,EditEnvironmentVariables

Auch dieses Applet bearbeitet die Registrierung und hat den gleichen Effekt wie oben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.