항목
    about_Profiles

간단한 설명
    Windows PowerShell 프로필을 만들고 사용하는 방법에 대해 설명합니다.

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

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

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

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


 프로필 파일

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

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


        설명                       경로
        ----                       ----
        현재 사용자, 현재 호스트   $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
        현재 사용자, 모든 호스트   $Home\[My ]Documents\Profile.ps1
        모든 사용자, 현재 호스트   $PsHome\Microsoft.PowerShell_profile.ps1
        모든 사용자, 모든 호스트   $PsHome\Profile.ps1

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

        - $PsHome 변수: Windows PowerShell의 설치 경로를 저장합니다.

        - $Home 변수: 현재 사용자의 홈 디렉터리를 저장합니다.


    또한 Windows PowerShell을 호스트하는 다른 프로그램에서 해당 프로필을 지원할 수 있습니다. 예를 들어 
    Windows PowerShell ISE(통합 스크립팅 환경)는 다음과 같은 호스트 전용 프로필을 지원합니다.


        설명                       경로
        ----                       ----
        현재 사용자, 현재 호스트   $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
        모든 사용자, 현재 호스트   $PsHome\Microsoft.PowerShellISE_profile.ps1


    Windows PowerShell 도움말에서 "CurrentUser, Current Host" 프로필은 "사용자의 
    Windows PowerShell 프로필"이라고도 하는 프로필입니다. 

 $PROFILE 변수

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

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

    $Profile 변수는 "현재 사용자, 현재 호스트" 프로필에 대한 경로를 저장합니다. 다른 프로필은 $profile 
    변수의 메모 속성에 저장됩니다.
    
    예를 들어 $Profile 변수에는 Windows PowerShell 콘솔에 다음 값이 있습니다.


        이름                               설명                
        ----                               ----
        $Profile                           현재 사용자, 현재 호스트  
        $Profile.CurrentUserCurrentHost    현재 사용자, 현재 호스트  
        $Profile.CurrentUserAllHosts       현재 사용자, 모든 호스트     
        $Profile.AllUsersCurrentHost       모든 사용자, 현재 호스트    
        $Profile.AllUsersAllHosts          모든 사용자, 모든 호스트       

    $Profile 변수 값은 사용자 및 호스트 응용 프로그램별로 변경되므로 사용하는 각 Windows 
    PowerShell 호스트 응용 프로그램의 프로필 변수 값이 표시되는지 확인합니다.

    $profile 변수의 현재 값을 보려면 다음을 입력하십시오.

        $profile | get-member -type noteproperty

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

	notepad $profile 


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

	test-path $profile.AllUsersAllHosts


 프로필을 만드는 방법

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

        if (!(test-path <profile-name>)) 
           {new-item -type file -path <profile-name> -force}


    예를 들어 현재 Windows PowerShell 호스트 응용 프로그램에서 현재 사용자에 대한 프로필을 만들려면 다음 명령을 
    사용합니다. 

        if (!(test-path $profile)) 
           {new-item -type file -path $profile -force}


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

    참고: Windows Vista와 이후 Windows 버전에서 "모든 사용자" 프로필을 만들려면 "관리자로 실행" 
          옵션을 사용하여 Windows PowerShell을 시작합니다.


 프로필을 편집하는 방법

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

    현재 Windows PowerShell 호스트 응용 프로그램의 현재 사용자 프로필을 메모장에서 열려면 다음을 입력합니다.

        notepad $profile


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

        notepad $profile.AllUsersAllHosts


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

 프로필을 선택하는 방법

    여러 호스트 응용 프로그램을 사용하는 경우 모든 호스트 응용 프로그램에서 사용하는 항목을 
    $Profile.CurrentUserAllHosts 프로필에 저장합니다.
    호스트 응용 프로그램에 대한 배경색을 설정하는 명령처럼 호스트 응용 프로그램에 고유한 항목을 호스트 응용 
    프로그램에 고유한 프로필에 둡니다.

    여러 사용자에 대한 Windows PowerShell을 사용자 지정하는 관리자는 다음 지침을 따르십시오.

        -- $profile.AllUsersAllHosts 프로필에 공통 항목을 저장합니다.

        -- 호스트 응용 프로그램 전용의 $profile.AllUsersCurrentHost 프로필에 호스트 응용 
           프로그램에 고유한 항목을 저장합니다.

        -- 사용자별 프로필에 특정 사용자에 대한 항목을 저장합니다.

    호스트 응용 프로그램 설명서에서 특별한 유형의 Windows PowerShell 프로필 구현에 대해 확인하십시오.


 프로필을 사용하는 방법

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

    세션별 명령과 항목에는 세션에 추가한 변수, 기본 설정 변수, 별칭, 함수, 명령(Set-ExecutionPolicy 
    제외) 및 Windows PowerShell 스냅인이 포함됩니다.

    이러한 항목을 저장하여 이후의 모든 세션에서 사용하려면 Windows PowerShell 프로필에 추가합니다. 

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


 프로필을 시작하는 방법

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

    시작할 때 몇 가지 권장 사항이 있습니다.

    -- 프로필을 쉽게 열 수 있는 명령을 추가합니다. 이렇게 하면 "현재 사용자, 현재 호스트" 프로필 이외의 프로필을 
       사용하는 경우 특히 유용합니다. 예를 들면 다음 명령을 추가합니다.
               
           function pro {notepad $profile.CurrentUserAllHosts}


    -- 컴파일된 HTML 도움말 파일(.chm)에서 Windows PowerShell 도움말을 여는 함수를 추가합니다. 

           function Get-CHM
            {
               (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
            }

       
       이 함수는 영어 버전의 .chm 파일을 엽니다. 그러나 언어 코드(0409)를 바꿔서 다른 버전의 .chm 
       파일을 열 수 있습니다.

    
    -- cmdlet에 대한 별칭을 나열하는 함수를 추가합니다.

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
           }


    -- 사용하는 Windows PowerShell 스냅인을 추가하려면 Add-PsSnapin 명령을 추가합니다.

    -- 콘솔을 사용자 지정합니다.

           function Color-Console 
           {
	        $host.ui.rawui.backgroundcolor = "white"
	        $host.ui.rawui.foregroundcolor = "black"
                $hosttime = (dir $pshome\powershell.exe).creationtime
                $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)"
                clear-host
           }
           Color-console


    -- 컴퓨터 이름과 현재 경로가 포함된 사용자 지정된 Windows PowerShell 프롬프트를 추가합니다. 

           function prompt 
           {
              $env:computername + "\" + (get-location) + "> "
           }


       Windows PowerShell 프로필에 대한 자세한 내용은 about_Prompts를 참조하십시오.


 NOPROFILE 매개 변수

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

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

    다음을 입력합니다.

	powershell -noprofile

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

	powershell -?


 프로필 및 실행 정책

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

    Set-ExecutionPolicy 명령은 실행 정책을 설정하고 변경하며, 값이 레지스트리에 저장되므로 모든 Windows 
    PowerShell 세션에 적용되는 몇 가지 명령 중 하나입니다. 따라서 콘솔을 열 때 설정하지 않아도 되고 프로필에 Set-
    ExecutionPolicy 명령을 저장하지 않아도 됩니다.


 프로필 및 원격 세션   

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

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

    예를 들어 다음 명령은 로컬 컴퓨터의 CurrentUserCurrentHost 프로필을 $s의 세션에서 실행합니다. 

        invoke-command -session $s -filepath $profile

    다음 명령은 원격 컴퓨터의 CurrentUserCurrentHost 프로필을 $s의 세션에서 실행합니다. 
    $profile 변수가 채워지지 않기 때문에 이 명령은 프로필에 대한 명시적 경로를 사용합니다.

        invoke-command -session $s {invoke-expression "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

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


참고 항목
    about_Automatic_Variables
    about_Functions
    about_Prompts
    about_Execution_Policies
    about_Signing
    about_Remote
    Set-ExecutionPolicy





목차