Voici une approche qui ne nécessite pas d'arguments de ligne de commande ni de lanceur distinct. Ce n'est pas complètement invisible car une fenêtre s'affiche momentanément au démarrage. Mais il disparaît rapidement. Là où c'est OK, c'est, je pense, l'approche la plus simple si vous voulez lancer votre script en double-cliquant dans l'explorateur, ou via un raccourci du menu Démarrer (y compris, bien sûr, le sous-menu Démarrage). Et j'aime bien que ça fasse partie du code du script lui-même, pas quelque chose d'extérieur.
Mettre cela à l'avant de votre script:
$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)
Commander cette question si vous êtes intéressé par l'apprentissage: http://stackoverflow.com/questions/573623/powershell -vs-unix-shells –