web-dev-qa-db-fra.com

Comment garder la fenêtre Shell ouverte après avoir exécuté un script PowerShell?

J'ai un très court script PowerShell qui se connecte à un serveur et importe le module AD. J'aimerais exécuter le script simplement en double-cliquant, mais je crains que la fenêtre ne se ferme immédiatement après la dernière ligne.

Comment puis-je résoudre ce problème?

36
JustAGuy

Vous avez essentiellement trois options pour empêcher la fermeture de la fenêtre de la console PowerShell, que je décris plus en détail sur mon article de blog .

  1. Solution ponctuelle: Exécutez votre script à partir de la console PowerShell ou lancez le processus PowerShell à l'aide du commutateur -NoExit. par exemple. PowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
  2. Per-script Correction: Ajoutez une invite de saisie à la fin de votre fichier de script. par exemple. Read-Host -Prompt "Press Enter to exit"
  3. Solution globale: Modifiez votre clé de registre pour toujours laisser la fenêtre de la console PowerShell ouverte après l'exécution du script.

Voir mon blog pour plus d'informations sur les clés de registre à modifier.

69
deadlydog

Euh… .. J'aurais du savoir:

powershell -noexit <path\script> 

et c'est tout ce qu'il y a à faire :)

14
JustAGuy

La solution ci-dessous empêche le script de se fermer lors de l'exécution de Powershell ISE et autorise le script à se fermer autrement.

# 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