PowerShell ファイルを実行可能ファイルに変換する

Marion Paul Kenneth Mendoza 2023年6月20日
PowerShell ファイルを実行可能ファイルに変換する

PowerShell スクリプト (PS1) はさまざまな方法で呼び出すことができますが、それらにはすべて 1つの欠点があり、標準の Windows 実行可能プログラム (EXE) のように単純に実行することはできません。 スクリプト内のコードを編集できないようにするか、ユーザーがスクリプトを簡単に実行できるようにしたいと考えています。

それでは、PS1EXE に変換する方法を学びましょう。 この記事では、PS1EXE モジュールに使用し、PowerShell ファイルを実行可能ファイルに適切に変換する方法について説明します。

PSEXE ユーティリティを使用して、PowerShell で PS1EXE に変換する

PS2EXEは、PowerShell スクリプトを別の言語に変換しない無料のオープン ソース Windows PowerShell モジュールです。

代わりに、C# 言語で記述された軽量の PowerShell ホストで PowerShell スクリプトをカプセル化し、メモリ内で動的に生成された C# コードを実行可能ファイルにコンパイルします。

PSEXE モジュールを PowerShell にインストールする

PS2EXE はモジュールを使用してスクリプトを実行可能ファイルに変換するため、PowerShell ギャラリーからインストールする必要があります。 指示に従って、PS2EXE ユーティリティ モジュールをインストールします。

  1. 管理者として PowerShell コンソールを開きます。

  2. Install-Module コマンドレットを実行して、PowerShell ギャラリーからモジュールをダウンロードしてインストールします。

    Install-Module ps2exe
    
  3. 信頼できないリポジトリに関するプロンプトが表示されたら、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 を使用して PS1EXE に変換する

コマンド ライン経由で 1つの Windows PowerShell スクリプトを実行可能ファイルに変換するには、メインの PS2EXE コマンド (Invoke-PS2EXE) を使用する 1 行が必要です。 コマンドの後には、変換するスクリプトのパスと、作成する実行可能ファイルへのパスが続きます。

## 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - PowerShell Script