web-dev-qa-db-ja.com

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

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

これをどうやって整理できますか?

44
JustAGuy

基本的に、PowerShellコンソールウィンドウが閉じないようにするための3つのオプションがあります。これについては ブログの投稿で詳しく説明します と説明します。

  1. 1回限りの修正:PowerShellコンソールからスクリプトを実行するか、-NoExitスイッチを使用してPowerShellプロセスを起動します。例えばPowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
  2. スクリプトごとの修正:スクリプトファイルの最後に入力のプロンプトを追加します。例えばRead-Host -Prompt "Press Enter to exit"
  3. グローバル修正:レジストリキーを変更して、スクリプトの実行が終了した後、常にPowerShellコンソールウィンドウを開いたままにします。

変更するレジストリキーの詳細については、私のブログをご覧ください。

79
deadlydog

エラー...知っているべきだった:

powershell -noexit <path\script> 

そして、それはそれだけです:)

17
JustAGuy

以下の解決策は、Powershell ISEの実行時にスクリプトが閉じるのを防ぎ、それ以外の場合にスクリプトを閉じることを許可します。

# If running in the console, wait for input before closing.
if ($Host.Name -eq "ConsoleHost")
{
    Write-Host "Press any key to continue..."
    $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
}
0
averroes