Antworten:
Es ist absolut nichts Besonderes /usr/bin
auf * nix-Dateisystemen, mit der Ausnahme, dass dies ein Speicherort ist, der standardmäßig für alle Benutzer in der Umgebungsvariablen PATH enthalten ist. Windows hat dieselbe Umgebungsvariable, aber die einzigen Speicherorte, die standardmäßig für alle Benutzer verfügbar sind, sind Dinge wie C:\Windows\System32
.
Sie können Verwenden Sie System32 als Bin-Ordner, aber Sie können auch einfach einen neuen Ordner für Bins erstellen. C:\bin
würde funktionieren, obwohl es standardmäßig von allen Benutzern beschreibbar ist, sodass Sie möglicherweise die Berechtigungen anpassen möchten, und Sie können es dann der maschinenweiten Umgebungsvariablen PATH hinzufügen, damit alle Benutzer problemlos darauf zugreifen können. Alternativ können Sie a bin
Ordner in jedem Benutzerverzeichnis mit seinem Pfad in der PATH-Umgebungsvariablen pro Benutzer (wenn eine Umgebungsvariable sowohl im Benutzer- als auch im Maschinenspeicher definiert ist, wird sie bei der tatsächlichen Verwendung verkettet, zuerst auf der Maschine).
PowerShell legt alle Umgebungsvariablen in einem virtuellen "Laufwerk" mit dem Namen "Env:" ab (ähnlich C: für Dateien oder HKLM: für die HKLM-Registrierungsstruktur). Lesen Sie hier mehr darüber: http://ss64.com/ps/syntax-env.html Auf die Umgebungsvariablen können Sie über zugreifen $env:<VARNAME>
wie jede andere Variable (der Typ ist String) ; Sie können beispielsweise an PATH anhängen (Hinweis: Bei Windows-Umgebungsvariablennamen wird die Groß- und Kleinschreibung nicht berücksichtigt.) wie folgt:
$env:path = $env:path + ";C:\foo\bar\baz"
Dies gilt jedoch nur für den aktuellen Prozess (und seine untergeordneten Prozesse). Wenn Sie den Wert in der Registrierung speichern möchten, damit er für andere Prozesse oder sogar andere Benutzer sichtbar ist (Hinweis: Für die Bearbeitung von Umgebungsvariablen, die andere Benutzer betreffen, sind Administratorrechte erforderlich), ist die Verwendung von .NET-Klassen die einfachste Methode, die mir bekannt ist ( PowerShell ist im Grunde genommen ".NETscript". Um diesen Ordner beispielsweise der computerweiten Umgebungsvariablen PATH hinzuzufügen, gehen Sie wie folgt vor (als Administrator):
[System.Environment]::SetEnvironmentVariable("path", $env:path + "C:\foo\bar\baz", "Machine")
Der letzte Parameter ist die Zeichenfolgendarstellung eines Werts in der System.EnvironmentVariableTaget-Enumeration , wie von der System.Environment.SetEnvironmentVariable statische Methode .
Sie können sicherlich ein Skript / Cmdlet erstellen, das den Aufruf dieser Funktion vereinfacht. Sie können auch die [System.Environment]::GetEnvironmentVariable(name, [optional store])
statische Funktion zum Lesen von Umgebungsvariablen direkt aus den Benutzer- oder Maschinenspeichern. Auch hier sind alle Umgebungsvariablen Strings (und wenn Sie eine Sammlung davon erhalten, handelt es sich um ein Dictionary).
%USERPROFILE%\Documents\WindowsPowerShell\PowershellProfile.ps1
für den aktuellen Benutzer. Es gibt insgesamt 6 Profile. Sehen Grundlegendes zu den sechs PowerShell-Profilen für die anderen 5.
$profile
um zu sehen, wo das ist. Möglicherweise müssen Sie es erstellen.)