How To

PowerShellを使用してEXEファイルを実行する方法

February 15, 2026 1 分で読む Updated: February 15, 2026

実行可能ファイル(.exe)は、ダブルクリックするだけで簡単に実行できます。しかし、プログラムのインストール、環境の設定、メンテナンスタスクの実行など、自動化を行う場合は、Windows PowerShell がこれらのファイルをどのように処理するかを理解する必要があり、少し奇妙に感じるかもしれません。PowerShell には.exe ファイルを実行する方法がいくつかあり、設定やファイルの場所によっては、最も簡単な方法がうまくいかないことがあります。これは、スクリプトを詳細に操作する場合や、ユーザーの介入なしに何かを実行させようとしている場合に特に厄介な問題となります。

さらに、サーバーやPCをリモートで管理している場合、スクリプトやコマンドラインからプログラムを実行する方法を知っておくと、膨大な時間を節約できます。ここでの目標は、権限の壁やパスの問題にぶつかることなく、実行ファイルをスムーズに実行するための、信頼性が高く実証済みの方法をいくつか理解することです。正しく設定すれば、PowerShellコマンドはファイルをダブルクリックしたかのように実行します。ファイル名にスペースが含まれていたり、権限が不明瞭だったりすると、うまくいかないことがあるため、多少の試行錯誤が必要になることを覚悟してください。しかし、一度慣れてしまえば、なぜ最初はこんなに複雑に感じたのか不思議に思うでしょう。Windowsは、必要以上に複雑にしてしまうことがあるからです。

Powershell で EXE を実行するにはどうすればいいですか?

PowerShellから実行ファイルを実行する際は、正しい場所と構文を指定していることを確認してください。ファイル名またはパスは実際のファイルの詳細に置き換えてください。ただし、< >括弧は構造を表すためのものなので、含めないでください。また、コマンドはファイル名やディレクトリ内のスペースを認識できない可能性があるため、スペースを含むパスを引用符で囲むことが重要です。

& 演算子を使用してパラメータなしで直接実行する

これが最も一般的な方法です。&シンボル(呼び出し演算子と呼ばれることもあります)は、PowerShellに「このファイルを実行してください」と指示します。フルパスでも相対パスでも指定できるため柔軟性が高く、ほとんどのシンプルなシナリオで機能します。手順は以下のとおりです。

  • PowerShell を管理者として開きます — を押しWindows + R、 と入力してpowershellCtrl + Shift + Enter を押します。(アプリで管理者権限が必要な場合は、この操作が必要になることがあります。)
  • .exe ファイルが現在いるディレクトリと同じディレクトリにある場合は、 と入力します& '.\filename.exe'.\は現在のフォルダ内の「ここを参照する」という意味です。
  • パスが別の場所にあり、完全なパスがわかっている場合は、次のように入力します& 'C:\Path\To\Your\File.exe'。パスにスペースが含まれている場合は、 のようにパスを引用符で囲むようにしてください& 'C:\Program Files\MyApp\app.exe'

ここで何が起こっているのでしょうか? そうですね、&PowerShell は、ファイルを単なる文字列としてではなく、プログラムとして実行したいことを理解します。時々奇妙なことが起きることがあります。設定によっては、これを完全に認識させるにはもう一度試したり、再起動したりする必要があるかもしれません。理由はよく分かりませんが、Windows はスクリプトの実行に関して常にトリッキーなことをしているように感じます。

Start-Process の使い方 – PowerShell パワーユーザー向け

Start-Process は、アプリを起動するための万能ツールのようなものです。プログラムが終了してから次の処理に移ったり、PowerShell を手動で管理者として起動せずに管理者権限で実行したりするなど、より細かな制御が必要な場合に最適です。

役立つ理由:完了を待つ、引数を渡す、権限を昇格するなどのオプションが増えます。

適用される場合:スクリプトが実行可能ファイルが終了するまで待機する必要がある場合、または特定の権限で実行する必要がある場合。

期待される結果:プログラムが起動し、完了するとスクリプトが続行されます (-Wait使用されている場合)。

  • 基本的な使用方法:Start-Process -FilePath “C:\Path\To\Program.exe”
  • プロセスの終了を待機しています:Start-Process -FilePath “C:\Path\To\Program.exe” -Wait
  • 管理者として実行:Start-Process -FilePath “C:\Path\Program.exe” -Verb RunAs

アプリの起動を自動化し、確実に完了してから続行したい場合に便利です。インストーラースクリプトやバッチジョブなど、前のステップの完了を前提としている処理を扱う場合、これが唯一の確実な方法となることもあります。

Invoke-Expression の使用 — まあ、ほとんどの場合は避けた方が良い

正直、これはちょっと怖いです。Invoke-Expressionスクリプトインジェクションの脆弱性があり、デバッグが非常に面倒になる可能性があるため、Microsoftは実行可能ファイルの実行にこれを使用しないことを推奨しています。

しかし、何をしているのかよく分かっているなら、正しいコマンドを渡せば実行ファイルを実行できます。例えば、以下のようになります。

Invoke-Expression -Command ".\Path\To\File.exe"

通常、この方法は、ファイルが存在するディレクトリ内に既にいる場合に有効です。その場合はファイル名だけで問題ありません。別のディレクトリにいる場合は、フルパスを指定してくださいInvoke-Expression -Command "D:\Folder\File.exe"。ただし、注意が必要です。他のユーザーからの入力を受け入れる場合、この方法は信頼性が低く、安全ではない可能性があります。正直なところ、悪意のあるスクリプトが簡単に侵入する可能性があるため、絶対に問題がないと確信できる場合を除き、この方法は避けてください。

一部のシステムでは、このメソッドがエラーをスローしたり、すぐに実行されなかったりすることがあります。少し奇妙ですが、実際に起こることです。ちなみに、Microsoftはこのアプローチをあまり推奨していないので、慎重に使用してください。

注:実用上は、特に本番環境向けのスクリプトを作成する場合、&またはのようなメソッドの方Start-Processが信頼性が高いです。invoke メソッドは、最後の手段、または手軽なテストに使用します。