파워셸 환경 변수: 심층 탐색

PowerShell을 사용하여 Windows 환경 변수를 설정하고, 환경 변수를 읽고, 새로운 환경 변수를 생성하는 것은 한 번 알면 쉽습니다. 이 문서에서 배울 수 있는 팁은 Windows 10 환경 변수뿐만 아니라 Windows 7 SP1/Windows Server 2008 이후의 모든 Windows 클라이언트/서버에도 적용됩니다.

PowerShell은 $env: PSDrive, 레지스트리 및 [System.Environment] .NET 클래스를 통해 Windows 환경 변수와 상호 작용하는 다양한 방법을 제공합니다. 환경 변수의 범위를 이해하며 각 방법에 대해 알아보겠습니다.

가정사항

이 문서에서는 Windows 10에서 Windows PowerShell 5.1을 사용합니다. 그러나 Windows 7 SP1 이상에 Windows PowerShell v3 이상의 버전이 있다면, 이제 보여줄 기술은 아무 문제없이 작동해야 합니다.

환경 변수란 무엇인가요?

환경 변수는 이름 그대로 Windows 및 응용 프로그램에서 사용하는 환경에 관한 정보를 저장합니다. 환경 변수는 Windows 탐색기와 메모장과 같은 그래픽 응용 프로그램뿐만 아니라 cmd.exe와 PowerShell과 같은 일반 텍스트 편집기에서도 액세스할 수 있습니다.

환경 변수를 사용하면 PowerShell 스크립트나 모듈에서 파일 경로, 사용자 또는 컴퓨터 이름 등을 하드 코딩하는 것을 피할 수 있습니다.

일반적인 환경 변수

PowerShell에서 환경 변수와 함께 작업하는 방법에 대해 더 많이 배우기 시작하면 여러 가지 다른 변수들을 만나게 될 것입니다. 일부는 다른 것보다 유용합니다. 아래는 일반적인 환경 변수와 그 사용법에 대한 참고용 목록입니다.

Variable Usage
ClientName The name of the remote computer connected via a Remote Desktop session.
SessionName This helps to identify if the current Windows session is regarded by the operating system as running at the console. For console sessions SessionName will be ‘Console’. Enhanced Session connections to Hyper-V Virtual Machines do not report SessionName as ‘Console’, whereas Standard Sessions do.
ComputerName The name of the computer.
SystemRoot and Windir The path to the current Windows installation.
ProgramFiles and ProgramFiles(x86) The default locations for x64 and x86 programs.
ProgramW6432 The default location for programs, avoiding 32/64 bit redirection. This variable only applies for 32 bit processes running on a 64 bit platform. This means that you can use it to identify when a 32 bit instance of PowerShell is running on a 64 bit system.
UserDNSDomain The Fully Qualified Domain Name of the Active Directory domain that the current user logged on to. Only present for domain logons.
UserDomain The NETBIOS-style name of the domain that the current user logged on to. Can be a computer name if there’s no domain.
UserDomainRoamingProfile The location of the central copy of the roaming profile for the user, if any. Only present for domain logons.
UserName The name of the currently logged on user.
UserProfile The location of the profile of the current user on the local computer.

환경 변수 범위

환경 변수에는 세 가지 범위가 있습니다. 범위를 변수의 계층으로 생각해보세요. 이러한 “계층”은 Windows에서 실행 중인 모든 프로세스에 많은 다른 환경 변수를 제공합니다.

환경 변수 범위 “계층구조”

이 “계층” 각각은 서로를 결합하거나 덮어씁니다. 이러한 “계층”은 시스템 -> 사용자 -> 프로세스와 같은 계층구조로 정의됩니다. 각 범위별 변수가 부모 범위에 이미 존재한다면 해당 변수는 부모 범위의 변수를 덮어씁니다.

예를 들어, 일반적인 환경 변수는 TEMP입니다. 이 변수는 Windows의 로컬 임시 폴더의 폴더 경로를 저장합니다. 이 환경 변수는 다음과 같이 설정됩니다:

  • C:\WINDOWS\TEMP in the machine scope
  • C:\Users\<username>\AppData\Local\Temp in the user scope
  • C:\Users\<username>\AppData\Local\Temp in the process scope.

사용자 범위에 TEMP 환경 변수가 설정되어 있지 않다면 최종 결과는 C:\WINDOWS\TEMP가 됩니다.

환경 변수 범위 유형

Windows에는 세 가지 다른 환경 변수 범위가 있습니다.

시스템

시스템 범위의 환경 변수는 Windows의 실행 인스턴스와 관련이 있습니다. 모든 사용자 계정은 이러한 변수를 읽을 수 있지만, 설정, 변경 또는 삭제하는 경우에는 관리자 권한이 필요합니다.

사용자

사용자 범위의 환경 변수는 현재 프로세스를 실행하는 사용자와 관련이 있습니다. 사용자 변수는 동일한 이름을 가진 기계-범위 변수를 덮어씁니다.

참고: Microsoft는 기계 및 사용자 범위의 환경 변수 값이 2048자를 초과하지 않도록 권장합니다.

프로세스

환경 변수는 프로세스 범위에는 기계사용자 범위의 변수와 Windows가 동적으로 생성하는 일부 변수를 포함합니다.

아래는 실행 중인 프로세스에서 사용할 수 있는 환경 변수 목록입니다. 이러한 변수는 모두 동적으로 생성됩니다.

  • ALLUSERSPROFILE
  • APPDATA
  • COMPUTERNAME
  • HOMEDRIVE
  • HOMEPATH
  • LOCALAPPDATA
  • LOGONSERVER
  • PROMPT
  • PUBLIC
  • SESSION
  • SystemDrive
  • SystemRoot
  • USERDNSDOMAIN
  • USERDOMAIN
  • USERDOMAIN_ROAMINGPROFILE
  • USERNAME
  • USERPROFILE

레지스트리의 환경 변수

환경 변수는 사용자 범위와 기계 범위에 대해 두 개의 레지스트리 위치에 저장됩니다.

환경 변수 관리에 레지스트리를 사용하지 마십시오

레지스트리 내의 변수를 변경할 때 주의해야 합니다. 실행 중인 프로세스는 레지스트리의 변수 변경을 볼 수 없습니다. 프로세스는 시작될 때 레지스트리 변수와 값만 보이며, Windows가 변경 사항을 알릴 때까지 변경된 사항을 볼 수 없습니다.

레지스트리를 직접 수정하는 대신 .NET 클래스를 사용할 수 있습니다. .NET [System.Environment] 클래스는 레지스트리 관리를 담당하면서 기계 및 사용자범위 환경 변수를 수정할 수 있습니다.

레지스트리를 직접 수정하는 것은 가능하지만, 의미가 없습니다. .NET 클래스는 더 간단하고 Microsoft에서 지원하는 접근 방식을 제공합니다. 이 문서에서는 나중에 [System.Environment] .NET 클래스 사용 방법에 대해 알아볼 것입니다.

환경 변수 레지스트리 위치 및 조회

I hope you’ve been convinced to not modify the registry directly but if you’d like to take a peek at what’s in there, you can find all user environment variables in the HKEY_CURRENT_USER\Environment key. Machine-scoped environment variables are stored at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

이러한 키 중 하나의 내부에는 REG_SZ 또는 REG_EXPAND_SZ 유형의 레지스트리 값이 있습니다. REG_EXPAND_SZ 값은 값의 일부로 포함된 환경 변수를 포함합니다. 이러한 환경 변수는 값을 검색할 때 확장됩니다.

이를 증명하기 위해 REG 유틸리티를 사용합니다. 이는 Windows에 포함된 작은 명령 줄 유틸리티입니다.

TEMP 환경 변수를 아래와 같이 조회하십시오. REG를 실행하여 TEMP 변수의 값을 검색하는 QUERY 매개 변수를 사용하십시오.

> REG QUERY HKCU\Environment /V TEMP

HKEY_CURRENT_USER\Environment     
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp

위와 같이 퍼센트 기호로 둘러싸인 환경 변수가 표시되는 것을 가끔씩 볼 수 있습니다. 이는 cmd.exe 및 배치 파일을 통해 환경 변수를 표시하는 고전적인 방법입니다. PowerShell은 이 형식을 인식하지 않는다는 것을 알고 계십시오.

REG 유틸리티를 사용하면 레지스트리 값의 원래 값을 볼 수 있습니다. 값 유형은 REG_EXPAND_SZ이고 값은 %USERPROFILE% 환경 변수를 포함합니다.

PowerShell을 사용하여 레지스트리 값을 검색하려면 아래와 같이 Get-Item cmdlet을 사용할 수 있습니다.

PS51> Get-ItemProperty -Path HKCU:\Environment -Name TEMP

TEMP         : C:\Users\<your username>\AppData\Local\Temp
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Environment
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER
PSChildName  : Environment
PSDrive      : HKCU
PSProvider   : Microsoft.PowerShell.Core\Registry

GUI를 통해 Windows 환경 변수 보기 및 설정

사용자 및 시스템 환경 변수의 GUI 보기를 보려면 PowerShell, 명령 프롬프트 또는 Windows 키+R에서 SystemPropertiesAdvanced.exe를 실행하여 시스템 속성 고급 탭을 표시하십시오. 아래 이미지에서 강조된 EnvironmentVariables 단추를 클릭하십시오.

The System Properties dialog, Advanced tab

아래 그림과 같이 환경 변수 대화 상자에서 사용자 및 기계 범위의 환경 변수를 보고, 생성하고 수정할 수 있습니다. 대화 상자에서 기계 범위 변수를 시스템 변수라고 참고하십시오.

The Environment Variables dialog

이제 환경 변수에 대한 이해를 갖추었으니, PowerShell을 사용하여 원하는 것인 환경 변수 관리로 들어가 봅시다!

PowerShell을 사용하여 환경 변수와 상호 작용하는 몇 가지 방법이 있습니다.

  • Env: PSDrive 및 제공자 – 세션 기반입니다. 현재 PowerShell 세션의 환경 변수 값만 설정합니다.
  • $env: 변수 – 세션 기반입니다. 현재 PowerShell 세션의 환경 변수 값만 설정합니다.
  • [System.Environment] .NET 클래스 – 세션과 재부팅을 거쳐 사용자 및 시스템 범위의 환경 변수를 유지할 수 있습니다.

Env: PSDrive 및 제공자

환경 변수를 읽는 가장 좋은 방법 중 하나는 PowerShell 드라이브(PS 드라이브)라고 불리는 PowerShell 개념입니다. PS 드라이브를 사용하면 Env: 드라이브를 통해 환경 변수를 파일 시스템처럼 다룰 수 있습니다.

Env: 드라이브로 전환하기

모든 PS 드라이브와 마찬가지로, Env:\TEMP, Env:\COMPUTERNAME 등과 같은 경로를 통해 참조합니다. 하지만 몇 가지 키 입력을 절약하기 위해, 아래와 같이 파일 시스템 드라이브를 전환하듯이 Env: 드라이브로 전환할 수 있습니다.

PS51> cd Env:
PS51 Env:\>

## 또는

PS51> Set-Location Env:
PS Env:\>

Env: 드라이브와 탭 완성

파일 시스템에 액세스하는 데 사용하는 명령인 Get-ItemGet-ChildItem을(를) 환경 변수에 액세스하는 데 사용할 수 있습니다. 하지만 파일 시스템 대신 Env: 드라이브를 읽고 있습니다.

환경 변수는 PS 드라이브에 저장되므로 PowerShell의 탭 완성 기능을 사용하여 사용 가능한 변수를 순환할 수 있습니다. 아래에 표시된대로입니다.

Env: tab completion – finding environment variables starting with the letter C

이제 몇 가지 예제로 Env: PS 드라이브를 사용하여 환경 변수를 처리하는 방법을 살펴보겠습니다.

Env:로 환경 변수 나열하기

PS51> Get-Item -Path Env:
PS51> Get-Item -Path Env:USERNAME

Env:와 와일드카드를 사용하여 환경 변수 나열하기

PS51> Get-Item -Path Env:user*

Env:로 환경 변수 값 찾기

이러한 명령의 결과는 키/값 [System.Collections.DictionaryEntry] .NET 객체입니다. 이러한 객체는 환경 변수의 이름을 Name 속성에, 값은 Value 속성에 보관합니다.

아래에 표시된대로, 환경 변수의 특정 값을 액세스하려면 Get-Item 명령 참조를 괄호로 묶고 Value 속성에 참조합니다:

PS51> (Get-Item -Path Env:computername).Value
MYCOMPUTERHOSTNAME

특정 환경 변수만 반환해야하는 상황에서는 Select-ObjectWhere-Object와 같은 표준 PowerShell cmdlet을 사용하여 Env: 공급자에 의해 반환되는 객체를 선택하고 필터링합니다.

아래 예제에서는 환경 변수 COMPUTERNAME만 반환됩니다.

PS51> Get-ChildItem -Path Env: | Where-Object -Property Name -eq 'COMPUTERNAME'

대안으로 Get-Content cmdlet을 사용할 수 있습니다. 이 cmdlet은 환경 변수의 값이 포함된 [String] 객체를 반환합니다. 이 객체는 NameValue 속성이 있는 객체 대신 값만 반환하여 처리하기가 간단합니다.

PS51> Get-Content -Path Env:\COMPUTERNAME

데모: 문자열에 환경 값을 삽입

Get-Content를 사용하여 예를 들어 텍스트 문자열에 COMPUTERNAME 환경 변수를 찾고 삽입할 수 있습니다.

PS51> 'Computer Name is: {0}' -f (Get-Content -Path Env:COMPUTERNAME)
Computer Name is: MYCOMPUTER

Env:를 사용하여 환경 변수 설정(및 생성)

New-Item cmdlet을 사용하여 PowerShell에서 새로운 환경 변수를 생성할 수 있습니다. Env:\<EnvVarName> 형식으로 환경 변수의 이름을 Name 값으로 제공하고 환경 변수의 값을 Value 매개변수로 제공합니다. 아래 예제를 참조하세요.

PS51> New-Item -Path Env:\MYCOMPUTER -Value MY-WIN10-PC
Name                           Value
----                           -----
MYCOMPUTER                     MY-WIN10-PC

Set-item cmdlet을 사용하여 환경 변수를 설정하거나, 이미 존재하지 않는 경우 새로 생성할 수 있습니다. 아래에서 Set-Item cmdlet을 사용하여 환경 변수를 생성하거나 수정할 수 있음을 확인할 수 있습니다.

PS51> Set-Item -Path Env:testvariable -Value "Alpha"

Env:를 사용하여 환경 변수 복사

환경 변수 값 복제가 필요한 경우가 있습니다. Copy-Item cmdlet을 사용하여 이를 수행할 수 있습니다.

아래에서 COMPUTERNAME 변수의 값을 MYCOMPUTER로 복사하여 기존 값이 덮어쓰여진 것을 확인할 수 있습니다.

PS51> Get-Item -Path Env:\MYCOMPUTER

Name                           Value
----                           -----
MYCOMPUTER                     MY-WIN10-PC

PS51> Copy-Item -Path Env:\COMPUTERNAME -Destination Env:\MYCOMPUTER
PS51> Get-Item -Path Env:\MYCOMPUTER

Name                           Value
----                           -----
MYCOMPUTER                     WIN10-1903

Env:를 사용하여 환경 변수 제거

더 이상 필요하지 않은 환경 변수를 제거해야 할 때 세 가지 방법을 사용할 수 있습니다:

  • Set-Item cmdlet을 사용하여 환경 변수를 빈 값으로 설정
PS51> Set-Item -Path Env:\MYCOMPUTER -Value ''
PS51> Remove-Item -Path Env:\MYCOMPUTER
  • Clear-Item cmdlet을 사용
PS51> Clear-Item -Path Env:\MYCOMPUTER

Env:를 사용하여 환경 변수 이름 변경

환경 변수 이름을 변경해야 하는 경우, Env: 제공자를 사용하여 삭제하고 다시 생성하는 대신 이름을 변경할 수 있습니다.

Rename-Item cmdlet을 사용하여 환경 변수의 이름을 변경하면서 값을 유지합니다. 아래에서는 MYCOMPUTER 변수를 OLDCOMPUTER로 이름을 변경하면서 값도 유지합니다.

PS51> Rename-Item -Path Env:\MYCOMPUTER -NewName OLDCOMPUTER
PS51> Get-Item -Path OLDCOMPUTER
Name                           Value
----                           -----
OLDCOMPUTER                    WIN10-1903

$Env: 변수

Env: 드라이브를 활용하여 환경 변수를 파일로 다루는 방법을 익힌 후, 이 섹션에서는 변수로서 환경 변수를 처리하는 방법을 보여줍니다. 또 다른 방법으로는 PowerShell 표현 분석기를 사용하여 세션 내 환경 변수를 관리할 수 있습니다. 이 기능을 사용하면 $Env: 스코프를 사용하여 환경 변수에 액세스할 수 있습니다.

$Env:를 사용하여 환경 변수 가져오기

$Env 스코프를 사용하여 아래와 같이 Get-Item과 같은 명령을 사용하지 않고 환경 변수를 직접 참조할 수 있습니다.

PS51> $env:computername

이 방법을 사용하면 아래와 같이 환경 변수를 문자열에 삽입하기 쉽습니다:

PS51> "The Computer Name is {0}" -f $env:computername
The Computer Name is WIN10-1809
PS51> "The Computer Name is $env:computername"
The Computer Name is WIN10-1809

$Env:를 사용하여 환경 변수 설정 또는 생성

이 방법을 사용하여 환경 변수를 설정하는 것은 간단합니다. 이 방법은 이미 존재하지 않는 경우 새로운 환경 변수를 생성합니다.

PS51> $env:testvariable = "Alpha"

기존 값에 추가하는 것이 아니라 덮어쓰지 않도록 += 구문을 사용합니다.

PS51> $env:testvariable = "Alpha"
PS51> $env:testvariable += ",Beta"

PS51> $env:testvariable
Alpha,Beta

$Env:를 사용하여 환경 변수 제거

이 방법을 사용하여 환경 변수를 제거하려면 해당 값을 빈 문자열로 설정하면 됩니다.

PS51> $env:testvariable = ''

[System.Environment] .NET 클래스 사용하기

.NET 클래스 [System.Environment]은 환경 변수를 가져오고 설정하는 메서드를 제공합니다. 이는 다양한 환경 범위에 직접 액세스하고 PowerShell 세션 간에 유지되는 환경 변수를 설정하는 유일한 방법입니다.

다음 예제에서 모든 범위가 제공되지 않은 경우 프로세스 범위가 가정됩니다.

[System.Environment]을 사용할 때는 몇 가지 다른 .NET 정적 클래스 메서드를 사용합니다. 정적 메서드가 무엇인지 이해할 필요는 없습니다. 배울 기술 중 하나를 사용하려면 먼저 클래스([System.Environment])를 참조한 다음 두 개의 콜론(::)을 사용하여 메서드를 사용하는 방법을 이해하면 됩니다.

[System.Environment]으로 환경 변수 나열하기

특정 범위에서 모든 환경 변수를 보려면 GetEnvironmentVariables 메서드를 사용합니다. 이 메서드는 메서드 인수로 지정된 범위의 모든 환경 변수를 반환합니다.

Listing environment variables with GetEnvironmentVariable in each scope
PS51> [System.Environment]::GetEnvironmentVariables('User') PS51> [System.Environment]::GetEnvironmentVariables('Machine') PS51> [System.Environment]::GetEnvironmentVariables('Process') # 프로세스와 동일 PS51> [System.Environment]::GetEnvironmentVariables()

[System.Environment]으로 단일 환경 변수 가져오기

특정 환경 변수를 찾아야 하는 경우 두 가지 다른 방법으로 찾을 수 있습니다.

  • GetEnvironmentVariables().<변수 이름> – 권장하지 않음
  • GetEnvironmentVariable('<변수 이름>','<범위>')

GetEnvironmentVariables()

GetEnvironmentVariables() 메서드를 사용하면 점 표기법을 사용하여 값을 참조합니다. [System.Environment] 클래스와 정적 메서드 참조를 괄호로 감싼 다음 점(.) 다음에 환경 변수의 이름을 입력합니다.

PS51> ([System.Environment]::GetEnvironmentVariables()).APPDATA

이러한 방식으로 환경 변수를 참조할 때 대소문자를 정확히 일치시켜야 합니다! 위의 예제에서는 APPDATA 변수를 appdata로 참조해 보세요. 대신 GetEnvironmentVariable()을 사용하세요.

GetEnvironmentVariable()

GetEnvironmentVariables() 메서드 대신 단일 환경 변수를 찾기 위해 GetEnvironmentVariable()을 사용하세요. 이 방법은 대소문자 구분 문제를 해결할 수 있으며, 범위를 지정할 수도 있습니다.

이 메서드를 사용하려면 환경 변수 이름과 해당 변수를 찾을 범위를 쉼표로 구분하여 지정하세요.

PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','User')
# 공백

PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','Machine')
# 공백

PS51> [System.Environment]::GetEnvironmentVariable('ComputerName','Process')  WIN10-1903

# 프로세스와 동일
PS51> [System.Environment]::GetEnvironmentVariable('ComputerName')
WIN10-1903

[System.Environment]를 사용하여 환경 변수 설정하기

주어진 범위에 대한 환경 변수의 값을 설정하거나, 해당 변수가 이미 존재하지 않는 경우 새로 생성하려면 SetEnvironmentVariable() 메서드를 사용하세요.

변수를 프로세스 범위에 설정할 때, 프로세스 범위는 변동적이며 사용자 및 기계 범위의 변경은 영구적입니다.

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','User')

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','Process')

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha','Machine')

 # 프로세스와 동일합니다
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable','Alpha')

참고: 변수 이름 또는 값이 32767자 이상인 경우 SetEnvironmentVariable 메소드를 호출하면 예외가 발생합니다.

환경 변수 제거하기 with [System.Environment]

빈 문자열로 값을 설정하여 지정된 범위의 환경 변수를 제거하려면 SetEnvironmentVariable() 메소드를 사용하십시오.

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'User')

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'Process')

PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '', 'Machine')

# 프로세스와 동일합니다
PS51> [System.Environment]::SetEnvironmentVariable('TestVariable', '')

유용한 PowerShell 환경 변수

PowerShell은 다른 Windows 응용 프로그램과 마찬가지로 몇 가지 고유한 환경 변수를 가지고 있습니다. 알아야 할 두 가지 유용한 환경 변수는 PSExecutionPolicyPreference와 PSModulePath입니다.

PSExecutionPolicyPreference

PSExecutionPolicyPreference 환경 변수는 현재 PowerShell 실행 정책을 저장합니다. 세션별 PowerShell 실행 정책이 설정되는 경우 다음과 같이 생성됩니다:

  • Set-ExecutionPolicy cmdlet을 Scope 매개변수가 Process인 상태로 실행합니다.
  • powershell.exe 실행 파일을 사용하여 새 세션을 시작하고 실행 정책을 설정하기 위해 실행 정책 명령줄 매개변수를 사용합니다.

PSModulePath

PSModulePath 환경 변수에는 PowerShell이 전체 경로를 지정하지 않은 경우 모듈을 검색하는 경로가 포함되어 있습니다. 이 변수는 일반적인 PATH 환경 변수와 유사하게 구성되며, 개별 디렉토리 경로는 세미콜론으로 구분됩니다.

PS51> $env:PSModulePath
C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

팁: 각 폴더를 분리하여 문자열 배열을 얻고, $env:PSModulePath.split(‘;’)를 사용하여 각 경로를 개별적으로 처리할 수 있습니다.

요약

환경 변수는 실행 중인 시스템에 대한 정보를 얻거나 세션 및 재부팅 간에 정보를 저장하는 유용한 방법입니다. Windows 운영 체제의 기본 환경 변수를 읽고 사용자 정의 환경 변수를 생성하든 상관없이 PowerShell을 사용하여 다양한 방법으로 관리할 수 있습니다!

추가 독서

Source:
https://adamtheautomator.com/powershell-environment-variables/