PowerShellスクリプトをダブルクリックで実行するには

スポンサーリンク
このブログではアフィリエイト広告を利用しています。

PowerShellスクリプト(.ps1ファイル)はダブルクリックしてもバッチファイルのように実行されず、メモ帳でファイルが開くだけです。

PowerShellスクリプトをダブルクリックでメモ帳が開いた画像

これはPowerShellが色々できすぎるため、セキュリティを考慮して間違えて実行したり、簡単に実行できたりしないようになっているようです。

ですが、よく使用するPowerShellスクリプトは簡単に実行できないと不便です。そこで、この記事ではいくつかの方法を紹介したいと思います。

スポンサーリンク

PowerShellスクリプトをダブルクリックで実行するには

PowerShellスクリプトをダブルクリックで実行する方法を紹介します。ここで紹介した方法はダブルクリックだけでなくドラッグ&ドラップでも実行できます。

ショートカットを使用する

「項目の場所を入力してください(リンク先)」を以下の内容でショートカットを作成します。

powershell -ExecutionPolicy RemoteSigned -File [PowerShellスクリプトのフルパス]

ショートカットの作り方がわからない場合は以下の記事をご覧ください。

使用できる追加オプション

オプションは以下のようなものもあります。状況によって追加してください。

  • -WindowStyle Hidden
    スクリプト実行時にPowerShell画面を隠す
  • -NoExit
    スクリプト終了後にPowerShell画面を残す
  • -NoProfile
    PowerShellプロファイルの読み込みを避ける

ただし、「-File」の前に追加する必要があります。

バッチファイルを使用する

バッチファイルはダブルクリックで実行可能なため、その中でPowerShellスクリプトを呼び出します。

以下の内容をファイル名は任意で、拡張子は「.cmd」か「.bat」で保存してください。

@echo off
powershell -ExecutionPolicy RemoteSigned -File [PowerShellスクリプトのフルパス]
exit

powershellの行は「ショートカットを使用する」の「使用できる追加オプション」と同じものが使用できます。

既定の動作を変更する

セキュリティを気にしないのであれば、既定の動作を変更してPowerShellスクリプト自体をダブルクリックで実行することも可能です。

既定の動作を変更するにはレジストリの変更が必要です。

レジストリにはOSにかかわる重要なデータも存在するので、レジストリエディターを使用して編集を行うときは事前にバックアップをとっておくなど、慎重に作業してください。 レジストリエディターの使用によって発生した問題の解決は保証できないため、自己責任でお願いします。

レジストリのバックアップ方法がわからない場合は以下の記事をご覧ください。

  1. ショートカットキーの[Windows]キー + [R]キーで「ファイル名を指定して実行」を開きます。
  2. 「regedit」と入力して[OK]をクリックします。
    「ファイル名を指定して実行」画面の画像
  3. 「ユーザーアカウント制御」画面が表示された場合は[はい]をクリックします。
    「ユーザーアカウント制御」画面の画像
  4. 「HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell」を選択し、右ペインの「(規定)」を右クリックして、表示されたメニューから[修正]をクリックします。
    レジストリ修正対象の画像
  5. 「文字列の編集」画面で 「値のデータ」を「Open」から「0(ゼロ)」に変更し、[OK]をクリックします。
    値のデータを0に変更した画像

「HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell」の配下にある「0」「Edit」「Open」の3つのキーはPowerShellスクリプトを右クリックした時にメニューに表示される「PowerShellで実行」「編集」「開く」にそれぞれ対応しています。

サブキーと右クリックメニューの対応の画像

「Open」を「0」に変更することで、ダブルクリック時の既定の動作を「開く」から「PowerShellで実行」に変更しています。

※ バージョンによっては「0」や「Edit」の値は無いかもしれません。ただし、設定変更でダブルクリックで実行できるようになったことは確認できました。

コメント