PowerShellでps1ファイルを実行する方法|相対パス・絶対パス・右クリックの違い

当ページのリンクには広告が含まれています。
PowerShellでps1ファイルを相対パス、絶対パス、pwshの-Fileオプション、右クリックメニューから実行する方法を示したアイキャッチ画像

せっかく書いたps1ファイルをいざ実行しようとしたら「認識されません」と怒られた、なんて経験はありませんか。

結論から言うと、同じフォルダーにあるps1ファイルは次のコマンドで実行できます。

PowerShell
.\test.ps1

ただ実際にはファイルの場所やシチュエーションによって実行方法がいくつかあります。この記事では相対パス・絶対パス・-Fileオプション・右クリックといった主要な実行方法の違いと、それぞれの使いどころを解説します。

検証環境(確認日:2026年8月)
OS

Windows 11 Home 25H2

PowerShell

7.6.3

目次

PowerShellでps1ファイルを実行する基本コマンド

PowerShellでps1ファイルを実行する一番シンプルな方法はカレントフォルダー(今いるフォルダー)にあるファイルを.\付きで指定することです。

PowerShell
.\test.ps1
実行結果
Hello, World!

見ての通り拡張子付きのファイル名を打つだけですが、先頭の.\を忘れると動きません。この理由は後半の「ps1ファイルを実行できない場合の確認項目」でまとめて説明します。

実行方法をざっくり比較すると次のとおりです。詳しい書き方は後述しますが、まずは全体像をつかんでおきましょう。

実行方法書き方の例向いている場面
相対パス.\test.ps1同じフォルダーやそのサブフォルダーのスクリプトをサクッと実行したいとき
絶対パス(呼び出し演算子)& "C:\Scripts\test.ps1"別フォルダーにあるスクリプトをパス指定で実行したいとき
-Fileオプションpowershell.exe -File "C:\Scripts\test.ps1"バッチファイルやタスクスケジューラーから呼び出したいとき
右クリック実行エクスプローラーで右クリック→「PowerShellで実行」とりあえず手軽に1回だけ試したいとき

ps1ファイルを作成して実行する手順

まずは簡単なps1ファイルを用意して、実行結果を確認するところまでやってみます。

Step

メモ帳などのテキストエディターを開き、次の1行を入力する。

PowerShell
Write-Output "Hello, World!"
Step

拡張子を変更する

拡張子を.ps1にして保存する(例:test.ps1)。

Step

そのファイルがあるフォルダーでPowerShellを開く。

特定のフォルダーでPowerShellをサクッと開く方法は以下でまとめているのであわせて読んでみてください。

Step

ps1ファイルを実行する。

PowerShell
.\scripts\test.ps1
実行結果
Hello, World!

ps1ファイルの実行方法を使い分ける

相対パスでps1ファイルを実行する

今いるフォルダーを基準にする実行方法です。同じフォルダーなら.\test.ps1、サブフォルダーにある場合は.\scripts\test.ps1のように指定します。

PowerShell
.\test.ps1
実行結果
Hello, World!

ここで.\を付けずにtest.ps1とだけ打つと、次のようなエラーになります。

PowerShellでtest.ps1を実行した際現在の場所にファイルは存在するもののコマンドとして認識されず、.\test.ps1での実行を案内しているエラー画面
PowerShellでは現在のフォルダーのスクリプトを実行する際に「.\test.ps1」のように指定します

これはPowerShellの仕様で、セキュリティ上の理由からカレントフォルダーを自動では検索しないためです。

絶対パスでps1ファイルを実行する

別のフォルダーにあるps1ファイルを実行する場合はフルパスを指定します。スペースを含まないパスはC:\Scripts\test.ps1のように直接入力しても実行できます。

パスにスペースが含まれる場合はダブルクォートで囲み、先頭に呼び出し演算子&を付けます。迷う場合は次の形で統一すると確実です。

PowerShell
& "C:\Scripts\test.ps1"
実行結果
Hello, World!

&を付けることでこの文字列をコマンドとして実行するようPowerShellに伝えられるわけですね。&なしでクォート付きパスだけを実行しようとするとスクリプトは実行されずパスの文字列がそのまま表示されるだけになるので注意してください。

powershell.exe・pwshの-Fileで実行する

コマンドプロンプトやバッチファイル、タスクスケジューラーなどPowerShellの対話画面を経由せずに実行したい場合は-Fileオプションを使います。

PowerShell
powershell.exe -File "C:\Scripts\test.ps1"
pwsh.exe -File "C:\Scripts\test.ps1"

powershell.exeとpwsh.exeという2つのコマンド名が出てきましたが、これはPowerShellのバージョンの違いです。

  • powershell.exe
    Windows標準搭載のPowerShell 5.1です。Windowsの一部として組み込まれているため削除できず、新機能の追加もないメンテナンスモードの状態です。
  • pwsh.exe
    現在開発されているPowerShell 7系です。Windowsではwinget、MSIインストーラー、Microsoft Storeなどから別途インストールします。2026年8月時点の最新LTSは7.6系です。

両者は別フォルダーにインストールされ共存できるので、5.1と7.xのどちらで実行しているか迷ったときは以下の記事も参考にしてみてください。


タスクスケジューラーからPowerShellスクリプトを定期実行したい場合の設定方法は以下でまとめています。

右クリックからps1ファイルを実行する

「PowerShellで実行」を選ぶと新しいPowerShellセッションが開き、スクリプトの終了時にセッションも閉じます。そのため処理が短いスクリプトでは結果を確認する前にウィンドウが閉じることがあります。

右クリック実行でも設定されている実行ポリシーは適用されます。実行ポリシーやダウンロードしたファイルのブロックが原因で実行できない場合は、後述する確認項目を確認してください。

なお、Windows 11では「PowerShell 7で実行」がコンテキストメニューに表示されない既知の問題があります。右クリックメニューで見つからない場合はPowerShellを開いてコマンドから実行してください。

ps1ファイルを実行できない場合の確認項目

ここまでの方法を試してもps1ファイルが実行できない場合、以下を順番に確認してみてください。

カレントフォルダーやファイルパスが違う

.\test.ps1は今いるフォルダーが基準です。cdで移動するか絶対パスで指定してください。

.\を付けていない

ファイル名だけを打つと「認識されません」というエラーになります。相対パスの項目で紹介したエラーがこれにあたります。

実行ポリシーでブロックされている

「このシステムではスクリプトの実行が無効になっているため」というエラーが出る場合、実行ポリシーの設定が原因です。変更方法は以下の記事で詳しく解説しています。

ダウンロードしたファイルがブロックされている

インターネット経由でダウンロードしたps1ファイルには「ブロック」の印が付くことがあります。これが原因でRemoteSignedポリシーでも実行できない場合があります。

Unblock-Fileコマンドでブロックを解除できます。Unblock-Fileを実行する前にスクリプトの内容と入手元を確認してください。信頼できると判断したファイルだけをブロック解除します。

PowerShell 5.1と7のどちらで実行しているか分からない

次のコマンドでバージョンを確認できます。

PowerShell
$PSVersionTable.PSVersion
PowerShellで「$PSVersionTable.PSVersion」を実行しMajor 7、Minor 6、Patch 3としてバージョン7.6.3を確認している画面
「$PSVersionTable.PSVersion」でPowerShellのバージョンを確認できます

バージョン欄が5.xならWindows PowerShell、7.xならPowerShell 7です。5.1と7.xでは実行ポリシーの設定が別々に管理されているので、想定と違うバージョンで実行していないかも確認してみてください。

よくある質問

ps1ファイルをダブルクリックしても実行されないのはなぜ?

Windowsの初期設定ではps1ファイルをダブルクリックするとメモ帳などのテキストエディターが開く仕様になっています。誤って危険なスクリプトが実行されるのを防ぐための挙動なので、実行したい場合は本文で紹介した右クリックまたはコマンドでの実行方法を使ってください。

「セキュリティ警告」のダイアログが出るのはなぜ?

実行ポリシーがUnrestrictedなどの場合、インターネット由来のスクリプトを実行しようとすると確認ダイアログが表示されることがあります。実行ポリシーの仕組みの一部なので、内容を確認したうえで問題なければ実行を許可してください。

まとめ

  • 同じフォルダーのps1ファイルは.\test.ps1で実行できるよ。
  • 別フォルダーのps1ファイルは絶対パスで実行できるよ。パスを””で囲む場合は先頭に呼び出し演算子&を付けてね。
  • コマンドプロンプトやタスクスケジューラーから呼ぶときは-Fileオプションを使ってね。
  • 右クリック実行は手軽だけど、ウィンドウがすぐ閉じるから結果確認には向かないよ。
  • うまく実行できないときは、まず.\の付け忘れと実行ポリシーを疑ってみてね。

ps1ファイルの実行後に覚えたいPowerShellの基本操作や自動化例はPowerShellまとめから用途別に探せます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次