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-Key: 323610

Url: https://administrator.de/contentid/323610

Printed on: April 26, 2024 at 08:04 o'clock

Mitglied: 131381
131381 Dec 12, 2016 at 10:32:43 (UTC)
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ß
Member: speedy26gonzales
speedy26gonzales Dec 12, 2016 at 10:48:37 (UTC)
Goto Top
Hi,
auch wenn ich die Powershell unter "Adminrechten" starte, ändert sich nichts.

Welche der drei Befehle wäre eigentlich der Richtige?
Mitglied: 131381
Solution 131381 Dec 12, 2016 updated at 11:06:34 (UTC)
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.
Member: speedy26gonzales
speedy26gonzales Dec 12, 2016 updated at 14:04:11 (UTC)
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?
Mitglied: 131381
131381 Dec 12, 2016 updated at 15:44:40 (UTC)
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'