about_Profiles

간단한 설명

PowerShell 프로필을 만들고 사용하는 방법을 설명합니다.

자세한 설명입니다.

PowerShell 프로필을 만들어 환경을 사용자 지정하고 시작하는 모든 PowerShell 세션에 세션별 요소를 추가할 수 있습니다.

PowerShell 프로필은 PowerShell이 시작될 때 실행되는 스크립트입니다. 프로필을 로그온 스크립트로 사용하여 환경을 사용자 지정할 수 있습니다. 명령, 별칭, 함수, 변수, 스냅인, 모듈 및 PowerShell 드라이브를 추가할 수 있습니다. 또한 프로필에 다른 세션별 요소를 추가하여 가져오거나 다시 만들지 않고도 모든 세션에서 사용할 수 있습니다.

PowerShell은 사용자 및 호스트 프로그램에 대한 여러 프로필을 지원합니다. 그러나 프로필을 만들지는 않습니다. 이 항목에서는 프로필에 대해 설명하고 컴퓨터에서 프로필을 만들고 유지 관리하는 방법을 설명합니다.

PowerShell 콘솔(PowerShell.exe)의 NoProfile 매개 변수를 사용하여 프로필 없이 PowerShell을 시작하는 방법을 설명합니다. 또한 PowerShell 실행 정책이 프로필에 미치는 영향을 설명합니다.

프로필 파일

PowerShell은 여러 가지 프로필 파일을 지원합니다. 또한 PowerShell 호스트 프로그램은 자체 호스트별 프로필을 지원할 수 있습니다.

예를 들어 PowerShell 콘솔은 다음과 같은 기본 프로필 파일을 지원합니다. 프로필은 우선 순위로 나열됩니다. 첫 번째 프로필의 우선 순위가 가장 높습니다.

Description 경로
모든 사용자, 모든 호스트 Windows - $PSHOME\Profile.ps1
Linux - /usr/local/microsoft/powershell/7/profile.ps1
macOS - /usr/local/microsoft/powershell/7/profile.ps1
모든 사용자, 현재 호스트 Windows - $PSHOME\Microsoft.PowerShell_profile.ps1
Linux - /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
macOS - /usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
현재 사용자, 모든 호스트 Windows - $Home\[내 ]DocumentsPowerShell\\Profile.ps1
Linux - ~/.config/powershell/profile.ps1
macOS - ~/.config/powershell/profile.ps1
현재 사용자, 현재 호스트 Windows - $Home\[내 ]DocumentsPowerShell\\Microsoft.PowerShell_profile.ps1
Linux - ~/.config/powershell/Microsoft.Powershell_profile.ps1
macOS - ~/.config/powershell/Microsoft.Powershell_profile.ps1

프로필 경로에는 다음 변수가 포함됩니다.

  • $PSHOME PowerShell의 설치 디렉터리를 저장하는 변수입니다.
  • $Home 현재 사용자의 홈 디렉터리를 저장하는 변수

또한 PowerShell을 호스트하는 다른 프로그램은 자체 프로필을 지원할 수 있습니다. 예를 들어 Visual Studio Code 다음과 같은 호스트별 프로필을 지원합니다.

Description 경로
모든 사용자, 현재 호스트 \ $PSHOMEMicrosoft.VSCode_profile.ps1
현재 사용자, 현재 호스트 \$Home[내 ]DocumentsPowerShell\\
Microsoft.VSCode_profile.ps1

PowerShell 도움말에서 "CurrentUser, 현재 호스트" 프로필은 가장 자주 "PowerShell 프로필"이라고 하는 프로필입니다.

참고

Windows 폴더 리디렉션 또는 OneDrive 문서 폴더의 위치를 변경할 수 있습니다. 문서 폴더를 네트워크 공유로 리디렉션하거나 OneDrive 포함하지 않는 것이 좋습니다. 폴더를 리디렉션하면 프로필 스크립트가 실패하고 모듈이 로드되지 않을 수 있습니다.

$PROFILE 변수

자동 변수는 $PROFILE 현재 세션에서 사용할 수 있는 PowerShell 프로필의 경로를 저장합니다.

프로필 경로를 보려면 변수 값을 표시합니다 $PROFILE . 명령에서 변수를 $PROFILE 사용하여 경로를 나타낼 수도 있습니다.

변수는 $PROFILE "현재 사용자, 현재 호스트" 프로필의 경로를 저장합니다. 다른 프로필은 변수의 참고 속성에 $PROFILE 저장됩니다.

예를 들어 변수의 $PROFILE 값은 Windows PowerShell 콘솔에 있습니다.

Description Name
현재 사용자, 현재 호스트 $PROFILE
현재 사용자, 현재 호스트 $PROFILE.CurrentUserCurrentHost
현재 사용자, 모든 호스트 $PROFILE.CurrentUserAllHosts
모든 사용자, 현재 호스트 $PROFILE.AllUsersCurrentHost
모든 사용자, 모든 호스트 $PROFILE.AllUsersAllHosts

변수 값이 $PROFILE 각 사용자와 각 호스트 애플리케이션에서 변경되므로 사용하는 각 PowerShell 호스트 애플리케이션에서 프로필 변수의 값을 표시해야 합니다.

변수의 현재 값을 보려면 다음을 $PROFILE 입력합니다.

$PROFILE | Get-Member -Type NoteProperty

많은 명령에서 변수를 사용할 $PROFILE 수 있습니다. 예를 들어 다음 명령은 메모장 "현재 사용자, 현재 호스트" 프로필을 엽니다.

notepad $PROFILE

다음 명령은 로컬 컴퓨터에서 "모든 사용자, 모든 호스트" 프로필이 만들어졌는지 여부를 결정합니다.

Test-Path -Path $PROFILE.AllUsersAllHosts

프로필을 만드는 방법

PowerShell 프로필을 만들려면 다음 명령 형식을 사용합니다.

if (!(Test-Path -Path <profile-name>)) {
  New-Item -ItemType File -Path <profile-name> -Force
}

예를 들어 현재 PowerShell 호스트 애플리케이션에서 현재 사용자에 대한 프로필을 만들려면 다음 명령을 사용합니다.

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

이 명령에서 문은 If 기존 프로필을 덮어쓰지 못하게 합니다. 자리 표시자의 값을 <profile-path> 만들려는 프로필 파일의 경로로 바꿉습니다.

참고

Windows Vista 이상 버전의 Windows "모든 사용자" 프로필을 만들려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다.

프로필을 편집하는 방법

메모장 같은 텍스트 편집기에서 PowerShell 프로필을 열 수 있습니다.

메모장 현재 PowerShell 호스트 애플리케이션에서 현재 사용자의 프로필을 열려면 다음을 입력합니다.

notepad $PROFILE

다른 프로필을 열려면 프로필 이름을 지정합니다. 예를 들어 모든 호스트 애플리케이션의 모든 사용자에 대한 프로필을 열려면 다음을 입력합니다.

notepad $PROFILE.AllUsersAllHosts

변경 내용을 적용하려면 프로필 파일을 저장한 다음 PowerShell을 다시 시작합니다.

프로필을 선택하는 방법

여러 호스트 애플리케이션을 사용하는 경우 모든 호스트 애플리케이션에서 사용하는 항목을 프로필에 $PROFILE.CurrentUserAllHosts 넣습니다. 호스트 애플리케이션에 대한 배경색을 설정하는 명령과 같이 호스트 애플리케이션과 관련된 항목을 해당 호스트 애플리케이션과 관련된 프로필에 배치합니다.

많은 사용자를 위해 PowerShell을 사용자 지정하는 관리자인 경우 다음 지침을 따르세요.

  • 프로필에 공통 항목 $PROFILE.AllUsersAllHosts 저장
  • 호스트 애플리케이션과 관련된 프로필에 $PROFILE.AllUsersCurrentHost 호스트 애플리케이션과 관련된 항목을 저장합니다.
  • 사용자별 프로필에 특정 사용자에 대한 항목 저장

PowerShell 프로필의 특별한 구현에 대한 호스트 애플리케이션 설명서를 확인해야 합니다.

프로필을 사용하는 방법

PowerShell에서 만드는 대부분의 항목과 실행하는 대부분의 명령은 현재 세션에만 영향을 줍니다. 세션을 종료하면 항목이 삭제됩니다.

세션별 명령 및 항목에는 변수, 기본 설정 변수, 별칭, 함수, 명령( Set-ExecutionPolicy 제외) 및 세션에 추가하는 PowerShell 모듈이 포함됩니다.

이러한 항목을 저장하고 이후의 모든 세션에서 사용할 수 있도록 하려면 PowerShell 프로필에 추가합니다.

프로필의 또 다른 일반적인 용도는 자주 사용되는 함수, 별칭 및 변수를 저장하는 것입니다. 프로필에 항목을 저장할 때 해당 항목을 다시 만들지 않고 해당 세션에서 사용할 수 있습니다.

프로필을 시작하는 방법

프로필 파일을 열면 비어 있습니다. 그러나 자주 사용하는 변수, 별칭 및 명령으로 채울 수 있습니다.

다음은 시작하기 위한 몇 가지 제안 사항입니다.

프로필을 쉽게 열 수 있는 명령 추가

이는 "현재 사용자, 현재 호스트" 프로필 이외의 프로필을 사용하는 경우에 특히 유용합니다. 예를 들어 다음 명령을 추가합니다.

function Pro {notepad $PROFILE.CurrentUserAllHosts}

cmdlet의 별칭을 나열하는 함수 추가

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

콘솔 사용자 지정

function Color-Console {
  $Host.ui.rawui.backgroundcolor = "white"
  $Host.ui.rawui.foregroundcolor = "black"
  $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
Color-Console

사용자 지정된 PowerShell 프롬프트 추가

function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}

PowerShell 프롬프트에 대한 자세한 내용은 about_Prompts 참조하세요.

NoProfile 매개 변수

프로필 없이 PowerShell을 시작하려면 PowerShell을 시작하는 프로그램인 PowerShell.exe****NoProfile 매개 변수를 사용합니다.

시작하려면 Cmd.exe 또는 PowerShell 자체와 같은 PowerShell을 시작할 수 있는 프로그램을 엽니다. Windows 실행 대화 상자를 사용할 수도 있습니다.

유형:

PowerShell -NoProfile

PowerShell.exe 매개 변수의 전체 목록을 보려면 다음을 입력합니다.

PowerShell -?

프로필 및 실행 정책

PowerShell 실행 정책은 부분적으로 스크립트를 실행하고 프로필을 포함한 구성 파일을 로드할 수 있는지 여부를 결정합니다. 제한된 실행 정책이 기본값입니다. 프로필을 포함하여 모든 스크립트가 실행되지 않도록 합니다. "제한" 정책을 사용하는 경우 프로필이 실행되지 않고 해당 내용이 적용되지 않습니다.

Set-ExecutionPolicy 명령은 실행 정책을 설정하고 변경합니다. 값이 레지스트리에 저장되기 때문에 모든 PowerShell 세션에서 적용되는 몇 안 되는 명령 중 하나입니다. 콘솔을 열 때 설정할 필요가 없으며 프로필에 명령을 저장할 Set-ExecutionPolicy 필요가 없습니다.

프로필 및 원격 세션

PowerShell 프로필은 원격 세션에서 자동으로 실행되지 않으므로 프로필이 추가하는 명령은 원격 세션에 없습니다. 또한 $PROFILE 자동 변수는 원격 세션에서 채워지지 않습니다.

세션에서 프로필을 실행하려면 Invoke-Command cmdlet을 사용합니다.

예를 들어 다음 명령은 세션 $s의 로컬 컴퓨터에서 "현재 사용자, 현재 호스트" 프로필을 실행합니다.

Invoke-Command -Session $s -FilePath $PROFILE

다음 명령은 세션 $s의 원격 컴퓨터에서 "현재 사용자, 현재 호스트" 프로필을 실행합니다. 변수가 $PROFILE 채워지지 않으므로 명령은 프로필에 대한 명시적 경로를 사용합니다. 프로필이 자체 범위가 아닌 원격 컴퓨터의 현재 범위에서 실행되도록 점 소싱 연산자를 사용합니다.

Invoke-Command -Session $s -ScriptBlock {
  . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}

이 명령을 실행한 후에는 프로필이 세션에 추가하는 명령을 사용할 수 있습니다 $s.

추가 정보