概要
PS2EXEを用いてPowerShellスクリプト(.ps1)から実行形式ファイル(.exe)を作成する手順を述べる.
詳細
PS2EXEのインストール
管理者権限でPowerShellを起動し,コマンド Install-Module ps2exe
を実行する.
PS C:\WINDOWS\system32> Install-Module ps2exe
NuGetプロバイダーがインストールされていない場合,以下の表示が出る.
Yを入力してNuGetプロバイダーをインストールする.
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\denkiuo604\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider
-Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ
PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"):
特に何も設定していなければ,PSGalleryは信頼されていないリポジトリとして認識される.
Yを入力してインストールを続ける.
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):
これでPS2EXEのインストールは終了である.
実行形式ファイルの作成
実行形式ファイルにしたいPowerShellスクリプトが配置されているフォルダで,PowerShellを起動する.
例として,本稿では C:\Users\denkiuo604\program.ps1
を実行形式ファイルにすることを考える.
この手順においては,PowerShellを管理者権限で起動する必要はない.
初めに,コマンド Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
を実行する.
PS C:\Users\denkiuo604> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
上記はPowerShellの実行ポリシーを変更するコマンドである.これを実行せずに以降の手順を進めると,次のエラーが発生してPS2EXEが実行されない.
ps2exe : 'ps2exe' コマンドはモジュール 'ps2exe' で見つかりましたが、このモジュールを読み込むことができませんでした。詳
細については、'Import-Module ps2exe' を実行してください。
発生場所 行:1 文字:1
+ ps2exe
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (ps2exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
コマンドの意味や実行ポリシーについては,以下の記事などを参照されたい.
PowerShellでこのシステムではスクリプトの実行が無効になっているため、ファイル hoge.ps1 を読み込むことができません。となったときの対応方法 - Qiita
次に,ps2exe
コマンドを実行する.
PS C:\Users\denkiuo604> ps2exe .\program.ps1
PS2EXE-GUI v0.5.0.29 by Ingo Karstein, reworked and GUI support by Markus Scholtes
Reading input file C:\Users\denkiuo604\program.ps1
Compiling file...
Output file C:\Users\denkiuo604\program.exe written
これで,PowerShellスクリプトと同じフォルダに実行形式ファイルが作成される.