1. ホーム
  2. active-directory

PowerShellスクリプトを実行した後、シェルウィンドウを開いたままにする方法は?

2023-09-15 22:57:24

質問

サーバーに接続し、AD モジュールをインポートする、非常に短い PowerShell スクリプトがあります。ダブルクリックするだけでスクリプトを実行したいのですが、最後の行の後にウィンドウがすぐに閉じてしまうのが心配です。

これを解決するにはどうしたらよいでしょうか。

どのように解決するのですか?

PowerShell コンソールのウィンドウを閉じないようにするには、基本的に次の 3 つの方法があります。 のブログ記事で詳しく説明しています。 .

  1. ワンタイム フィックス。 PowerShell コンソールからスクリプトを実行するか、-NoExit スイッチを使用して PowerShell プロセスを起動します。 PowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
  2. スクリプトごとの修正。 スクリプトファイルの最後に、入力を促すプロンプトを追加してください。 Read-Host -Prompt "Press Enter to exit"
  3. グローバルフィックス。 レジストリキーに -NoExit スイッチを追加して、スクリプトの実行終了後、PowerShell コンソールウィンドウを常に開いたままにします。
Registry Key: HKEY_CLASSES_ROOT\Applications\powershell.exe\shell\open\command
Description: Key used when you right-click a .ps1 file and choose Open With -> Windows PowerShell.
Default Value: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "%1"
Desired Value: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "& \"%1\""

Registry Key: HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command
Description: Key used when you right-click a .ps1 file and choose Run with PowerShell (shows up depending on which Windows OS and Updates you have installed).
Default Value: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
Desired Value: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoExit "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & \"%1\""


詳細と、レジストリを変更するためのスクリプトのダウンロードについては、私のブログを参照してください。