![見出し画像](https://assets.st-note.com/production/uploads/images/133106232/rectangle_large_type_2_db3bc24d2d8ba3e052d9b12cb2eb2eba.png?width=800)
PowerShell スクリプトを実行形式(exe)にする
PowerShellスクリプト(PS1)をWindows実行可能プログラム(EXE)に変換することができます。
PS1ファイルの中身を見られたくない、編集されたくない、簡単に実行したい場合などに便利です。
その変換方法を紹介します。
1.PS2EXE モジュールを PowerShell にインストールする
PS2EXEモジュールはPowerShellスクリプトを実行可能プログラムに変換するオープンソースWindows PowerShellモジュールです。
PowerShellスクリプトを実行可能ファイルに変換します。
まずはPS2EXEをインストールしましょう
管理者としてPowerShellコンソールを開きます。
そして次のコマンドを実行します
Install-Module ps2exe
信頼できないリポジトリに関するプロンプトが表示されたら、
Y と入力して Enter を押します。
信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
2.テスト用のPowerShellスクリプトを用意します
テスト用として下のスクリプトを用意しました
$wsobj = new-object -comobject wscript.shell
$result = $wsobj.popup('こんにちわコルタナです')
ファイルはc:\temp\test.ps1に保存、文字コードはUTF8にします。
3.PowerShellスクリプトをexeに変換する
ターミナルコンソールから
ps2exe c:\temp\test.ps1 c:\temp\sample.exe
![](https://assets.st-note.com/img/1709709189399-HClNgbvdJK.png)
変換完了。
c:\temp\sample.exe を実行すると
![](https://assets.st-note.com/img/1709708905511-dRgmgTz5bJ.png)
4.コンソールを隠すには
sample.exe を実行するとPowerShellコンソールが表示されます。黒い画面です。
これを防ぐためにはEXEを作成するときに noConsole パラメータを追加するとコンソールが非表示になります。
ps2exe "c:\temp\test.ps1" "c:\temp\Sample.exe" -noConsole
5.write-hostの出力を隠すには
コード内にwrite-host ~があると、本来コンソールに出力される文字列がポップアップウィンドウとして表示されます。
これを防ぐためにはEXEを作成するときに noOutput パラメータを追加するとポップアップが非表示になります。noConsoleと合わせることもできます。
ps2exe "c:\temp\test.ps1" "c:\temp\Sample.exe" -noOutput -noConsole
6.そのほか
バージョン情報やコピーライトを埋め込むことができます。
#PowerShell #PS2EXE #exe変換 #実行可能ファイル #コマンドレット #プログラミング学習 #プログラミング初心者 #Windows
この記事が気に入ったらサポートをしてみませんか?