speedy26gonzales
Goto Top

Umgebungsvariablen mit PowerShell anpassen - Problem

Hallo zusammen,

ich habe derzeit ein Problem und komm da nicht richtig weiter.
Ich möchte Umgebungsvariablen (in dem Fall Path - Erweiterungen) mit Powershell anpassen, dass sie nach einem Neustart noch verfügbar sind.

Dazu habe ich folgenden Befehl raus gesucht: [Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";c:\aladin\lib\dll\", "Machine")

Powershell bringt bei Ausführung keinen Fehler und übernimmt aber auch nichts.

Jemand eine Idee woran das liegen kann?

Folgende Befehle hatte ich auch schon versucht, leider ohne Erfolg:

[Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";c:\aladin\lib\", [EnvironmentVariableTarget]::Machine )
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\PYTHON27\Scripts\", "Machine")

Content-ID: 323610

Url: https://administrator.de/forum/umgebungsvariablen-mit-powershell-anpassen-problem-323610.html

Ausgedruckt am: 22.12.2024 um 13:12 Uhr

131381
131381 12.12.2016 um 11:32:43 Uhr
Goto Top
Powershell bringt bei Ausführung keinen Fehler und übernimmt aber auch nichts.
Dazu muss die PS Konsole als Admin ausgeführt werden, da dies Computer-Eigenschaften sind die nicht jeder User ändern darf.

Gruß
speedy26gonzales
speedy26gonzales 12.12.2016 um 11:48:37 Uhr
Goto Top
Hi,
auch wenn ich die Powershell unter "Adminrechten" starte, ändert sich nichts.

Welche der drei Befehle wäre eigentlich der Richtige?
131381
Lösung 131381 12.12.2016 aktualisiert um 12:06:34 Uhr
Goto Top
Zitat von @speedy26gonzales:

Hi,
auch wenn ich die Powershell unter "Adminrechten" starte, ändert sich nichts.
Mönsch Fehlermeldung please .... face-sad
Welche der drei Befehle wäre eigentlich der Richtige?
Deine Befehle sind falsch weil du mit $env:PATH nur die Umgebungsvariable des aktuellen Users abfragst. Du musst schon die des Systems abfragen!

Richtig wäre:
[Environment]::SetEnvironmentVariable("PATH","$([Environment]::GetEnvironmentVariable("PATH",'MACHINE'));C:\PYTHON27\Scripts\",'MACHINE')  

Ob [Environment] oder [System.Environment] ist egal das ist der gleiche Namespace, weil System schon geladen ist, [Environment] ist nur eine Abkürzung.
speedy26gonzales
speedy26gonzales 12.12.2016 aktualisiert um 15:04:11 Uhr
Goto Top
Zitat von @131381:

Zitat von @speedy26gonzales:

Hi,
auch wenn ich die Powershell unter "Adminrechten" starte, ändert sich nichts.
Mönsch Fehlermeldung please .... :.-(
Es gab nie eine Fehlermeldung. Das Skript wurdeohne Fehler ausgeführt, nur eben nix geschrieben face-smile.

Danke. Mit deinem Befehl funktioniert es jetzt wie es soll.
Perfekt.

'MACHINE'  
Ist hier eigentlich auch egal ob ' oder " benutzt wird?
131381
131381 12.12.2016 aktualisiert um 16:44:40 Uhr
Goto Top
Zitat von @speedy26gonzales:
'MACHINE'  
Ist hier eigentlich auch egal ob ' oder " benutzt wird?
Innerhalb von Hochkommas findet keine Variablenexpansion oder Escapinginterpretation statt. Ist hier zwar nicht von Belang aber man sollte nach Best-Practice immer Hochkommas verwenden wenn keine Expansion von Variablen oder Sonderzeichen mit führenden ` gewünscht ist.

Hier siehst du den Unterschied:
$name = 'mikrotik'  
write-host "Hallo ich bin $name`r`nmit einer neueZeile"  
write-host '-------'  
write-host 'Hallo ich bin $name'