PowerShell 파일을 실행 파일로 변환
다양한 방법으로 PowerShell 스크립트(PS1
)를 호출할 수 있지만 모두 한 가지 단점이 있습니다. 단순히 표준 Windows 실행 프로그램(EXE
)처럼 실행할 수 없다는 것입니다. 우리는 스크립트에서 코드를 편집하는 것을 방지하거나 사용자가 스크립트를 더 쉽게 실행할 수 있기를 원합니다.
이제 PS1
을 EXE
로 변환하는 방법을 배울 시간입니다. 이 기사에서는 PS1
에서 EXE
모듈을 사용하고 PowerShell 파일을 실행 파일로 적절하게 변환하는 방법에 대해 설명합니다.
PSEXE
유틸리티를 사용하여 PowerShell에서 PS1
을 EXE
로 변환
PS2EXE
는 PowerShell 스크립트를 다른 언어로 변환하지 않는 무료 오픈 소스 Windows PowerShell 모듈입니다.
대신 C# 언어로 작성된 경량 PowerShell 호스트로 PowerShell 스크립트를 캡슐화하고 메모리에서 동적으로 생성된 C# 코드를 실행 파일로 컴파일합니다.
PowerShell에서 PSEXE
모듈 설치
PS2EXE
는 모듈을 사용하여 스크립트를 실행 파일로 변환하므로 PowerShell 갤러리에서 설치해야 합니다. 지침에 따라 PS2EXE
유틸리티 모듈을 설치합니다.
-
PowerShell 콘솔을 관리자로 엽니다.
-
Install-Module
cmdlet을 실행하여 PowerShell 갤러리에서 모듈을 다운로드하고 설치합니다.Install-Module ps2exe
-
Y
를 입력하고 신뢰할 수 없는 리포지토리에 대한 프롬프트가 표시되면 Enter를 누릅니다. 괜찮아요; 이 메시지는 무해합니다.Untrusted repository You are importing the modules from an untrusted location. If you trust this location, change its InstallationPolicy by running the Set-PSRepository command. Are you certain you want to install the modules from the 'PSGallery'? [Y] Yes [N] No [?] Help (default is "N"): Y
PowerShell을 사용하여 PS1
을 EXE
로 변환
명령줄을 통해 단일 Windows PowerShell 스크립트를 실행 파일로 변환하려면 기본 PS2EXE
명령(Invoke-PS2EXE
)을 사용하는 한 줄이 필요합니다. 명령 다음에는 변환할 스크립트의 경로와 만들려는 실행 파일의 경로가 옵니다.
## Use the cmdlet
Invoke-PS2EXE .\test.ps1 .\sample.exe
## Using the alias
ps2exe .\test.ps1 .\sample.exe
이제 sample.exe
를 실행할 수 있습니다. 그러면 source.ps1
스크립트에 정의된 코드가 호출됩니다. 스크립트를 변환하는 동안 NoConsole
매개 변수를 사용하지 않은 경우 sample.exe
파일을 실행할 때 PowerShell 콘솔이 나타납니다.
콘솔 숨기기
앞의 예에서 sample.exe
를 실행하면 일반적인 PowerShell 콘솔이 나타납니다. 대부분의 경우 우리는 이것을 보고 싶지 않습니다.
이를 방지하기 위해 EXE
를 생성할 때 NoConsole
매개변수를 사용할 수 있습니다.
Invoke-ps2exe "D:\PS\Script.ps1" "D:\PS\Sample.exe" -noConsole
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn