Сценарий Powershell при запуске Windows не закрывается после запуска процесса

у меня есть Powershell V2.0 стартовый скрипт для моего рабочего компьютера (XP Professional 64-бит), следующий:

start "C:Program Files (x86)Microsoft OfficeOffice12OUTLOOK.EXE" -ArgumentList "/recycle"
sleep -S 2
start "C:Program Files (x86)Mozilla Firefoxfirefox.exe" -ArgumentList "https://mail.google.com"
sleep -S 2
start "C:Program Files (x86)Mozilla Firefoxfirefox.exe" -ArgumentList "-new-window https://www.google.com/calendar"
sleep -S 2
start "C:Program Files (x86)SkypePhoneSkype.exe"

спальные места, чтобы убедиться, что окна появляются на панели задач в правильном порядке. Я запускаю это из ярлыка на моем быстром запуске со следующей целью:

C:WINDOWSsystem32WindowsPowerShellv1.0powershell.exe C:scriptsinitialize.ps1

(Да, это 2.0: powershell -Version 2.0 работает, а -Version 1.0, а не -Version 3.0)

проблема, команда окно останется открытым до тех пор, пока окна Firefox, которая это не то, чего я хочу. Глядя на Process Explorer, когда я запускаю сценарий, вот что происходит:

  1. powershell.exe появится в проводнике.exe и появляется окно Powershell (с черным фоном, как ни странно. Но это не командир полиции.exe, так как при отладке скрипта сообщения об ошибках будут отображаться красным цветом).
  2. outlook.exe-файл отображается в powershell.появится окно exe и Outlook.
  3. firefox.exe-файл отображается в powershell.exe и окно Firefox кажется.
  4. второй firefox.exe-файл отображается в powershell.exe и другое окно Firefox появляется. Второй процесс Firefox затем завершает работу, как и ожидалось, так как Firefox использует только один процесс.
  5. skype.exe-файл отображается в powershell.появится окно exe и Skype.
  6. powershell.процесс exe необъяснимо торчит, как и окно Powershell.

если я закрываю оба окна Firefox, powershell.процесс exe выходит и Окно Powershell закрывается, а outlook.exe и skype.процессы exe отображаются в проводнике.exe как ожидалось.

Я подозреваю, что это как-то связано со стандартным вводом, выводом и ошибкой Firefox: я бы не ожидал, что Outlook или Skype когда-либо выведут что-либо на консоль, но Firefox имеет параметры командной строки, которые позволяют это сделать. Я просмотрел значения пользовательских наборов about:config и не нашел ничего подозрительного. Наконец, если у меня есть firefox.экземпляр exe уже запущен (запускается с ярлыка на рабочем столе) проблема не возникает (powershell.exe процесс выходит, как и должно).

так, что здесь происходит? Я собираюсь попробовать добавить-WindowStyle hidden к ярлыку next (должен закрыть этот Firefox, чтобы проверить его), но я хочу добраться до сути этого, хотя бы для того, чтобы улучшить мое понимание того, как работают консоли Windows.

4
задан Vanessa Phipps
25.02.2023 0:06 Количество просмотров материала 3135
Распечатать страницу

2 ответа

добавлять -WindowStyle hidden к цели работал как шарм; бродячие окно Powershell нигде не найти, либо на панели задач или в Process Explorer. До сих пор не уверен, почему эта проблема возникла, в первую очередь, но по крайней мере он делает то, что он должен.

1
отвечен Vanessa Phipps 2023-02-26 07:54

вы упоминаете, что Firefox может поддерживать стандартный ввод, вывод и / или ошибку. Мои собственные тесты не могли воспроизвести вашу проблему (т. е. окно PowerShell закрывается независимо), но я заметил, что Firefox имеет довольно много отладочного вывода.

можно попробовать Start-Process ' ы функции перенаправления для перенаправления стандартного вывода и ошибки в NUL (по сути, отбросив выход).

для этого просто добавьте следующие два аргумента в Start-Process команда:

-RedirectStandardOutput "C:\Program Files (x86)\Mozilla Firefox\NUL" -RedirectStandardError "C:\Program Files (x86)\Mozilla Firefox\components\NUL"

примечание: в то время как NUL по существу отбрасывает вывод, PowerShell откажется использовать один и тот же "файл" как для вывода, так и для ошибки. Поскольку NUL "существует" в каждом каталоге, использование разных каталогов работает вокруг этого, и мы могли бы также ограничить его каталогами Firefox.

1
отвечен Bob 2023-02-26 10:11

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх