ⓟrogramming/PowerShell

PowerShell Script - 기초

뚱땡이 우주인 2018. 6. 26. 21:37

파워셸에서 사용하는 파일 확장자의 종류

 확장자

 설명

.ps1 

 파워셸 스크립트 파일

 .psm1

 파워셸 스크립트 모듈

 .psd1

 모듈 메니페스트

 .format.ps1xml

 뷰 정의

 .ps1xml

 타입 확장을 포함한 기타 xml파일

 .psc

 파워셸 콘솔 구성 파일

 .pscc

 파워셸 세션 구성 파일


실행 정책

파워셸에서 사용하는 스크립트는 여타의 다른 종류의 스크립트와 눈에 띄는 차이점이 하나 있는데, 스크립트 하단에 전자 서명이 들어갈 수 있다/


파워셸에서 안전한 스크립트를 실행하려면 기본적으로 서명이 필요하다..



실행 정책을 다루는 데 필요한 두 가지 명령은 Get-ExecutionPolicy 와 Set-ExecutionPolicy이다.




# Get-ExecutionPolicy  : 현재 파워셸 세션에서 실행 정책을 확인
PS > Get-ExecutionPolicy                                                     
Unrestricted

# Set-ExecutionPolicy : 원하는 실행 정책을 지정하며, -ExecutionPolicy 매개변수에서 지정한다.
PS> Get-Help Set-ExecutionPolicy -Full                                                                                 
NAME
    Set-ExecutionPolicy
    
SYNTAX
    Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined} [[-
    Scope] {Process | CurrentUser | LocalMachine | UserPolicy | MachinePolicy}] [-Force] [-WhatIf] [-Confirm]  []
    
    
PARAMETERS
    -Confirm
        
        Required?                    false
        Position?                    Named
        Accept pipeline input?       false
        Parameter set name           (All)
        Aliases                      cf
        Dynamic?                     false
        
    -ExecutionPolicy 
        
        Required?                    true
        Position?                    0
        Accept pipeline input?       true (ByValue)
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false
        
    -Force
        
        Required?                    false
        Position?                    Named
        Accept pipeline input?       false
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false
        
    -Scope 
        
        Required?                    false
        Position?                    1
        Accept pipeline input?       true (ByPropertyName)
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false
        
    -WhatIf
        
        Required?                    false
        Position?                    Named
        Accept pipeline input?       false
        Parameter set name           (All)
        Aliases                      wi
        Dynamic?                     false
        
    
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216). 
    
    
INPUTS
    Microsoft.PowerShell.ExecutionPolicy
    Microsoft.PowerShell.ExecutionPolicyScope
    
    
OUTPUTS
    System.Object
    
ALIASES
    None
    

REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.
        -- To view the Help topic for this cmdlet online, type: " get-help="" set-executionpolicy="" -online"="" or="" go="" to="" https:="" go.microsoft.com="" fwlink="" ?linkid="113394." <="" pre="">

실행 정책의 종류

실행 정책 

설명 

 Restricted

 구성 파일을 로드 하거나 스크립트를 실행하지 않는다.

 AllSigned

 로컬 컴퓨터에서 작성하는 스크립트를 포함하여 모든 스크립트 및 구성 파일에 신뢰할 수 있는 게시자가 서명해야 한다.

 RemoteSigned

 인터넷에서 다운로드한 모든 스크립트 및 구성 파일에 대해 신뢰할 수 있는 게시자가 서명해야 한다.

 UnRestricted

 모든 구성 파일을 로드하고 모든 스크립트를 실행한다. 인터넷에서 다운로드한 서명되지 않은 스크립트를 실행할 경우 실행하기 전에 사용권한을 묻는 메시지가 표시된다.

 Bypass

 어떤 스크립트도 차단하지 않으며 경고나 메시지를 표시하지 않는다.

 Undefined

 현재 할당된 실행 정책을 현재 범위에서 제거한다. 이 옵션으로 그룹 정책에서 설정한 실행 정책을 제거할 수 있다.


PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned