ユーザーのログオン・ログオフ、PCの起動・シャットダウン時にPowerShellスクリプトを優先的に実行する方法
ユーザーのログオン・ログオフ時や、コンピューターの起動・シャットダウン時にWindows PowerShellスクリプトを最初に実行したい場合は、以下の手順に従って設定を行いましょう。「ローカルグループポリシーエディター」または「レジストリエディター」を使用することで、PowerShell以外のスクリプトよりも先にPowerShellスクリプトが実行されるよう優先順位を変更できます。
ユーザーがログオンしたりコンピューターを起動したりすると、登録されているすべてのスクリプトは同時に実行されます。そのため、システムの起動や特定のプログラムの実行に遅延が発生することがあります。こうした問題を避けるために、PowerShell以外のスクリプトよりも先に、すべてのWindows PowerShellスクリプトおよびグループポリシーオブジェクト(GPO)を実行させたいケースは少なくありません。
PowerShellスクリプトを優先的に実行させる設定手順
ローカルグループポリシーエディターを使用して、ユーザーのログオン・ログオフ時、コンピューターの起動・シャットダウン時にPowerShellスクリプトを最初に実行するには、次の手順に従います。
- Win + R キーを押して「ファイル名を指定して実行」を開きます。
- gpedit.msc と入力し、Enter キーを押します。
- 「コンピューターの構成」内の「スクリプト」へ移動します。
- 「ユーザーのログオン、ログオフ時に Windows PowerShell スクリプトを最初に実行する」をダブルクリックします。
- 「有効」を選択します。
- 「適用」→「OK」の順にクリックします。
- 「コンピューターの起動時、シャットダウン時に Windows PowerShell スクリプトを最初に実行する」をダブルクリックします。
- 「有効」を選択します。
- 「適用」→「OK」の順にクリックして完了です。
ここからは、各ステップを詳しく解説します。
まず、ローカルグループポリシーエディターを開きます。Win + R キーを押し、gpedit.msc と入力して Enter キーを押してください。エディターが開いたら、以下のパスへ移動します。
コンピューターの構成 > 管理用テンプレート > システム > スクリプト
この場所には、次の2つの設定項目が表示されます。
- ユーザーのログオン、ログオフ時に Windows PowerShell スクリプトを最初に実行する
- コンピューターの起動時、シャットダウン時に Windows PowerShell スクリプトを最初に実行する
それぞれの設定をダブルクリックし、「有効」を選択してください。

最後に「適用」→「OK」をクリックして変更を保存すれば、設定は完了です。
レジストリエディターを使って設定する方法
レジストリエディターから同じ設定を行うことも可能です。その場合は、以下の手順に従ってください。
- Win + R キーを押します。
- regedit と入力し、Enter キーを押します。
- UACプロンプトが表示されたら「はい」をクリックします。
- HKEY_LOCAL_MACHINE 内の「System」キーへ移動します。
- 「System」を右クリックし、「新規」→「DWORD (32ビット) 値」を選択します。
- 新しい値に「RunUserPSScriptsFirst」という名前を付けます。
- ダブルクリックし、値のデータを「1」に設定します。
- 「OK」をクリックします。
- 再度「System」を右クリックし、「新規」→「DWORD (32ビット) 値」を作成します。
- 今度は「RunComputerPSScriptsFirst」という名前を付けます。
- ダブルクリックして、値のデータを「1」に設定します。
- 「OK」をクリックして変更を保存します。
作業を始める前に、レジストリファイルのバックアップとシステムの復元ポイントの作成を行っておくことをおすすめします。万が一問題が発生しても、すぐに元の状態へ戻せるようにするためです。
Win + R キーを押して「ファイル名を指定して実行」を開き、regedit と入力して Enter キーを押します。UACプロンプトが表示されたら「はい」をクリックしてください。その後、以下のパスへ移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
この場所で2つのREG_DWORD値を作成します。「System」キーを右クリックし、「新規」→「DWORD (32ビット) 値」を選択して、「RunUserPSScriptsFirst」という名前を付けてください。

作成した値をダブルクリックし、値のデータを「1」に設定します。

同じ手順でもう1つのDWORD (32ビット) 値を作成し、「RunComputerPSScriptsFirst」という名前を付けます。こちらも値のデータを「1」に設定してください。
なお、「RunUserPSScriptsFirst」は「ユーザーのログオン、ログオフ時に Windows PowerShell スクリプトを最初に実行する」設定に対応し、「RunComputerPSScriptsFirst」は「コンピューターの起動時、シャットダウン時に Windows PowerShell スクリプトを最初に実行する」設定に対応しています。
設定を元に戻す方法
変更を元に戻したい場合は、以下の方法を使用します。
ローカルグループポリシーエディターで設定した場合は、同じパスを開き、設定を「未構成」に変更してください。レジストリエディターで設定した場合は、同じ「System」キーを開き、作成した2つのREG_DWORD値を削除します。削除するには、各値を右クリックして「削除」を選択し、「OK」ボタンで確認します。
これで、PowerShellスクリプトの実行順序に関する設定は完了です。本記事がお役に立てば幸いです。
-
Windows 10/11でVisual Studio Codeを使ってPowerShellスクリプトを作成・実行する方法
Windows 10やWindows 11でも、PowerShellスクリプトを作成できることをご存じでしょうか?WindowsにPowerShellをインストールしたら、次はPCで何ができるのか知りたくなるはずです。このガイドでは、Visual Studio Codeを使ってシンプルなスクリプトファイルを作成し、Windows 10およびWindows 11のPowerShellで実行する方法を解説します。 まずは基本的なPowerShellスクリプトの作り方を覚えましょう。これをマスターすれば、Windows 10とWindows 11の両方でスクリプトを作成・実行できるようになり、作業効
-
Windows 10の起動・シャットダウンを高速化する方法|今すぐ試せる9つの対策
Windows 10は、Microsoftが数多くの新機能やソフトウェアとともにリリースしたOSで、洗練されたデザインとレイアウトが大きな魅力です。すでにWindows 10へアップグレードした方も多いのではないでしょうか。 しかし、Windows 10も他のOSと同じように、使い続けるうちに動作が遅くなったり、シャットダウンに時間がかかったりといった問題が起こることがあります。 その原因はさまざまです。長期間の使用により、ジャンクファイル、無効なレジストリエントリ、重複ファイルなどがハードディスクに蓄積し、システムの速度を低下させます。また、マルウェアに感染するとコマンドへの応答が遅くなり、