Visual Studio Code

VSCode Extension 개발 1 - 실행 정책 변경(Set-ExecutionPolicy), Yeoman, VS Code Extension Generator 설치

carrotweb 2023. 5. 14. 20:47
728x90
반응형

Yeoman과 VS Code Extension Generator 설치

 

1. Visual Studio Code의 메뉴 Terminal(터미널) > New Terminal(새 터미널)를 클릭하거나 Ctrl + Shift + `(backtick) 키를 누릅니다. Yeoman과 VS Code Extension Generator를 설치하기 위해 Terminal(터미널)에서 npm install -g yo generator-code 명령어를 입력하고 Enter 키를 누릅니다.

npm install -g yo generator-code

설치가 진행됩니다.

 

 

Extension 개발

 

1. Extension 개발을 위해 작업 폴더를 생성합니다. 저는 "C:\workspaces\webstudys\extension1" 폴더를 생성하였습니다.

 

2. Visual Studio Code의 메뉴 File(파일) > Open Folder...(폴더 열기)를 클릭하거나 Ctrl 키를 누를 상태에서 K, O를 이어서 누릅니다. (Ctrl + K, Ctrl + O) 그리고 "C:\workspaces\webstudys\extension1" 폴더로 이동하고 "폴더 선택" 버튼을 누릅니다.

 

3. EXPLORER(탐색기)에 오픈한 폴더의 이름이 대문자(EXTENSION1)로 적용되어 오픈됩니다.

그리고 보안을 위해 Trust(신뢰) 확인 창이 나타납니다. "Yes, I Trust the authors" 버튼을 누릅니다.

 

4. Visual Studio Code의 메뉴 Terminal(터미널) > New Terminal(새 터미널)를 클릭하거나 Ctrl + Shift + `(backtick) 키를 누릅니다. 그리고 Extension 개발을 위해 Terminal(터미널)에서 yo code 명령어를 입력하고 Enter 키를 누릅니다.

yo code

그러면 보안 문제(스크립트 실행 제한)로 실행되지 않습니다.

yo : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\carro\AppData\Roaming\npm\yo.ps1 파일을 로드할 수 
없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시
오.
위치 줄:1 문자:1
+ yo code
+ ~~
    + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

 

 

스크립트 실행 제한 확인 및 변경

 

PowerShell의 실행 정책은 PowerShell이 구성 파일을 로드하고 스크립트를 실행하는 조건을 제어하는 안전 기능입니다. 이 안전 기능은 악성 스크립트의 실행을 방지하는 데 도움이 됩니다.

 

1. 현재 PowerShell 세션에 대한 실행 정책을 확인하기 위해 Terminal(터미널)에 Get-ExecutionPolicy 명령어를 입력하고 Enter 키를 누릅니다.

Get-ExecutionPolicy

 

Terminal(터미널)에 "Restricted"이라고 출력됩니다.

Restricted은 윈도우 클라이언트 컴퓨터에 대한 기본 실행 정책으로 개별 명령을 허용하지만 스크립트는 허용하지 않습니다. 그래서 yo code 명령어가 실행되지 않았습니다.

 

2. 자세하게 현재 세션에 영향을 주는 모든 실행 정책을 확인하기 위해 Terminal(터미널)에 Get-ExecutionPolicy -List 명령어를 입력하고 Enter 키를 누릅니다.

Get-ExecutionPolicy -List

실행 정책 범위(Scope)로 실행 정책(ExecutionPolicy)이 출력됩니다.

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

 

PowerShell 실행 정책을 변경하려면 Set-ExecutionPolicy 명령어를 사용해야 합니다. Set-ExecutionPolicy 명령어가 실행되면 변경된 실행 정책으로 즉시 적용됩니다.

 

특정 실행 정책 범위(Scope)에만 실행 정책을 변경하기 위해서는 매개 변수로 Scope를 사용해야 합니다.

Set-ExecutionPolicy -Scope <scope>

PowerShell 실행 정책 범위 (Scope)

  • MachinePolicy - 컴퓨터의 모든 사용자에 대한 그룹 정책으로 설정합니다.
  • UserPolicy - 컴퓨터의 현재 사용자에 대한 그룹 정책으로 설정됩니다.
  • Process - 현재 프로세스에만 설정됩니다.
  • CurrentUser - 현재 사용자에게만 설정됩니다.
  • LocalMachine - 현재 컴퓨터의 모든 사용자에게 설정됩니다.

 

실행 정책을 변경하기 위해서는 매개 변수로 ExecutionPolicy를 사용해야 합니다.

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

PowerShell 실행 정책 (PolicyName)

  • AllSigned - 모든 스크립트에는 신뢰할 수 있는 작성자의 서명이 있어야 스크립트가 실행됩니다.
  • Bypass - 아무것도 차단되지 않으며 경고 또는 프롬프트 없이 스크립트기 실행됩니다.
  • Default - 기본 실행 정책으로 윈도우 클라이언트이면 Restricted이 윈도우 서버이면 RemoteSigned으로 설정됩니다.
  • RemoteSigned - 로컬 컴퓨터에 작성되면 작성자의 서명이 없어도 스크립트 파일이 실행됩니다. 그렇지만 인터넷에서 다운로드한 스크립트 파일은 작성자의 서명이 필요합니다.
  • Restricted - 개별 명령을 실행되지만 스크립트 파일은 실행을 허용하지 않습니다.
  • Undefined - 실행 정책이 설정되어 있지 않아서 스크립트가 실행됩니다.
  • Unrestricted -  서명되지 않은 스크립트를 실행할 수 있습니다.

 

현재 사용자에게만 실행 정책을 변경하기 위해 <scope>는 CurrentUser로 <PolicyName>은 RemoteSigned으로 설정하겠습니다.

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

 

3. 실행 정책을 변경하기 위해 Terminal(터미널)에 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned 명령어를 입력하고 Enter 키를 누릅니다.

 

만약, <scope>를 LocalMachine으로 할 경우 PowerShell를 관리자 권한으로 실행해야 합니다. 그렇지 않으면 실행되지 않습니다.

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned

Set-ExecutionPolicy : 레지스트리 키 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'
에 대한 액세스가 거부되었습니다. 기본(LocalMachine) Scope에 대한 실행 정책을 변경하려면 "관리자 권한으로 실행" 옵션으로
 Windows PowerShell을 시작하십시오. 현재 사용자에 대한 실행 정책을 변경하려면 "Set-ExecutionPolicy -Scope CurrentUser"
를 실행하십시오.
위치 줄:1 문자:1
+ Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

 

 

PowerShell를 관리자 권한으로 실행하여 LocalMachine의 실행 정책 변경

 

1. 윈도우 "시작"(start)버튼을 클릭하고 "PowerShell"를 검색하여 마우스 오른쪽 버튼을 눌러 콘텍스트 메뉴에서 "권리자 권한으로 실행"을 클릭합니다.

 

2. 실행 정책을 변경하기 위해 PowerShell Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned 명령어를 입력하고 Enter 키를 누릅니다.

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned

그러면 실행 정책을 변경할 것인지 확인을 합니다. "Y"를 입력하고 Enter 키를 누릅니다.

실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y)  [A] 모두 예(A)  [N] 아니요(N)  [L] 모두 아니요(L)  [S] 일시 중단(S)  [?] 도움말 (기본값은 "N"): Y

 

3. 실행 정책이 변경 되었는지 확인하기 위해 PowerShell에 Get-ExecutionPolicy -List 명령어를 입력하고 Enter 키를 누릅니다.

Get-ExecutionPolicy -List

 

LocalMachine에 실행 정책이 변경된 것을 확인할 수 있습니다.

 

 

728x90
반응형