Đặt biến môi trường trong PowerShell [3 cách]
Các biến môi trường của Windows và phạm vi của chúng
Có ba phạm vi khác nhau cho các biến môi trường trong Windows.
- Đặt biến môi trường phiên
- Đặt biến môi trường cho người dùng bằng PowerShell
- Đặt biến môi trường máy
Trước khi hướng tới các giải pháp, chúng ta phải biết các biến môi trường và lý do chúng ta sử dụng chúng.
Quản trị viên hệ thống có thể truy cập vô số thông tin về hệ điều hành Windows bằng cách sử dụng các biến môi trường. Các biến môi trường mặc định có thể được đọc và cập nhật, đồng thời có thể tạo các biến môi trường mới, được phân tách thành phạm vi người dùng và phạm vi hệ thống.
PowerShell giúp việc tạo các biến môi trường Windows cũng như đọc và thiết lập các biến môi trường mới dễ dàng hơn nhiều so với giao diện đồ họa người dùng (GUI). Biến môi trường lưu trữ một giá trị mà ứng dụng Windows có thể truy cập.
PowerShell lưu thông tin về hệ điều hành Windows trong biến Môi trường. Ví dụ: số lượng bộ xử lý, ổ đĩa hệ thống, đường dẫn hồ sơ người dùng, v.v. Các biến môi trường trong PowerShell được lưu trữ trong Env:"drive", có thể truy cập được thông qua nhà cung cấp môi trường PowerShell, một hệ thống con của PowerShell. Đây là một hệ thống tập tin ảo, không phải ổ đĩa vật lý.
Đặt biến môi trường phiên
Sử dụng $Env: Đường dẫn
Sử dụng $Env: Path để đặt biến môi trường cho phiên. Bây giờ, phạm vi của nó sẽ dành cho phiên hiện tại và phạm vi quy trình.
Đặt biến môi trường phiên:
$Env:Hugobin = "C:\Hugo\bin"Trong lệnh trên, $Env:Path tạm thời đặt biến môi trường cho phiên, nhưng nó không giữ lại giá trị biến sau khi đóng cửa sổ PowerShell. Vì vậy, ví dụ: điều này sẽ đặt biến môi trường Hugobin thành C:\Hugo\bin cho phiên hiện tại.
Để duy trì biến môi trường trong các phiên, bạn có thể sử dụng lệnh ghép ngắn Export-ModuleMember để xuất biến môi trường từ tập lệnh cấu hình PowerShell. Đây là một ví dụ:
Sử dụng $Env:Path với Lệnh ghép ngắn Xuất-ModuleMember:
$env:Hugobin = "C:\Hugo\bin"
Export-ModuleMember -Name HugobinNó sẽ đặt biến môi trường Hugobin thành C:\Hugo\bin và cung cấp biến này cho tất cả các phiên. Trong PowerShell, chúng ta có thể sử dụng lệnh ghép ngắn Get-ChildItem để in tất cả các biến môi trường như sau:
Sử dụng Get-ChildItem để lấy các biến môi trường:
Get-ChildItem -Path Env:ĐẦU RA :
Name Value
---- -----
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\Mehvish\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
.... ...Chúng ta có thể sử dụng += và viết giá trị biến như sau để nối giá trị mới vào biến môi trường:
Nối biến môi trường:
$Env:Path += "D:\go\bin\"Lệnh trên sẽ nối giá trị D:\go\bin vào đường dẫn biến môi trường và sẽ chỉ khả dụng cho phiên này.
Sử dụng lệnh ghép ngắn Set-Item
Lệnh ghép ngắn Set-Item cũng có thể được sử dụng để đặt hoặc thay đổi bất kỳ biến môi trường nào. Bạn cũng có thể tạo biến môi trường bằng phương pháp này.
Sử dụng lệnh ghép ngắn Set-Item:
Set-Item -Path env:Hugobin -Value "C:\Hugo\bin"Lệnh ghép ngắn ở trên sẽ đặt biến môi trường Hugobin thành C:\Hugo\bin
Đặt biến môi trường cho người dùng hiện tại
Sử dụng phương thức SetEnvironmentVariable() của lớp [System.Environment] để đặt biến môi trường cho người dùng hiện đang sử dụng PowerShell.
Đặt biến môi trường người dùng:
[System.Environment]::SetEnvironmentVariable('GoHugos','C:\Hugo\bin',
[System.EnvironmentVariableTarget]::User)Đối với phần này, chúng tôi đã sử dụng phương thức SetEnvironmentVariable(), thuộc lớp [System.Environment], để đặt biến môi trường chỉ cho người dùng hiện đang sử dụng PowerShell.
Ở đây, đối số đầu tiên của phương thức SetEnvironmentVariable() là tên của biến môi trường, đối số thứ hai là giá trị được đặt cho biến môi trường và đối số thứ ba là EnvironmentVariableTarget chỉ định phạm vi của biến môi trường.
Trong trường hợp này, EnvironmentVariableTarget được đặt thành User, có nghĩa là biến môi trường sẽ chỉ được đặt cho người dùng hiện tại. Chúng ta cũng có thể sử dụng phương thức SetEnvironmentVariable() để đặt biến môi trường Machine; Hãy xem chúng ta có thể làm điều đó như thế nào.
Đặt biến môi trường máy
Sử dụng phương thức SetEnvironmentVariable() của lớp [System.Environment] để đặt biến môi trường cho máy.
Đặt biến môi trường máy:
[System.Environment]::SetEnvironmentvariable('GoHugos','C:\Hugo\bin',
[System.EnvironmentVariableTarget]::Machine)Lệnh này tương tự như lệnh trước nhưng đặt biến môi trường cho Machine bằng cách sử dụng phương thức SetEnvironmentVariable() của [System.Environment] lớp học. Nó tạo môi trường cho một máy bằng cách sử dụng EnvironmentVariableTarget làm Machine, nghĩa là biến môi trường sẽ được đặt cho tất cả người dùng trên máy.
