powershell не закрывать окно после выполнения скрипта
Как предотвратить закрытие окна PowerShell, чтобы я мог видеть ошибку?
Я создаю локальный скрипт загрузчика модуля PowerShell. Модуль и скрипт хранятся на сетевом ресурсе. Скрипт вызывает с помощью:
он копирует скрипт в папку стандартные модули профиля, а затем запускает установку.ps1 из папки модуля. Install.ps1 поднимает, если нужно. Перед закрытием окна с повышенными правами появляется красная ошибка, но окно закрывается слишком быстро, чтобы я мог увидеть ошибку. Как я могу узнать, что ошибка есть?
скрипт загрузчика вызывает установщик с помощью:
Я проверил приложение, систему, Windows PowerShell и журналы событий безопасности, и нет никаких ошибок, связанных с этим.
все скрипт создать источник событий. Если вы хотите запустить его, вы можете использовать:
затем, чтобы удалить его. Вот скрипт:
Я использую PowerShell 4.0, но для него нет тега.
3 ответов
у вас в основном есть 3 варианта, чтобы предотвратить закрытие окна консоли PowerShell, которое я описываю подробнее в моем блоге.
Глобальное Исправление: измените раздел реестра, чтобы всегда оставлять окно консоли PowerShell открытым после завершения работы сценария. Вот 2 раздела реестра, которые необходимо изменить:
Ключ Реестра: HKEY_CLASSES_ROOT\Applications\powershell.exe\shell\open\command
по умолчанию Значение:
Нужное Значение:
Ключ Реестра: HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell \Command
Значение По Умолчанию:
Нужное Значение:
похоже, вы, вероятно, хотите использовать опцию #2. Вы даже можете обернуть весь свой скрипт в блок try и только запрашивать ввод, если произошла ошибка, например:
Скрыть окно powershell при выполнении
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Возможно ли скрыть окно консольного приложения при его выполнении?
Запускается консольное приложение (время отработки где то 2-3 сек). запускается из программы на.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Для создания окна.
Пропадает окно ВЫВОД при выполнении программы
есть окно вывод, но когда запускаю программу (F5) окно пропадает. как сделать чтобы окно было во.
Как убрать окно интерпретатора при выполнении программы?
привет при выполнении python скриптов на windows появляется окно интерпритатора, как его отправить.
попробуйте вот так
Добавлено через 1 минуту
и если бы я это делал то, сделал отдельного пользователя для автоматических задач, и запускал бы скрипты из под него.
Sorred, запускайте планировщиком от системы, тогда окно улетит в другую сессию.
Комментарий модератора | ||
|
Добавлено через 5 минут
Да и не всегда есть дублирование программ 32/64 в System32|SysWOW64.
Иногда бывают проблемы. Кроме того сторонние x64 программы не дублируются в SysWOW64 для 32 разрядов. PS лишь частный случай с которым всё OK.
Как то встречался с этой проблемой с вызовом окон Параметров Windows 10 насколько помню, вроде как именно с ними была заморочка. Давно это было. Они не дублируются. Знаю точно, что не всё так просто.
Добавлено через 1 минуту
Бугага. Откуда ты взялся в теме скрытия окон с темой запусти открытое окно так как я очень этого желаю?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Скрыть окно при старте
Доброго времени суток! Подскажите плз, как скрыть приложение при запуске. Использую CoolTrayIcon.
Скрыть главное окно при старте программы
Народ, кто-нибудь в курсе, как скрыть главное окно при старте программы так, чтобы оно не.
Скрыть окно консоли при запуске tkinter
Как скрыть надоедливое консольное окошко при запуске tkinter программ?
Скрыть консольное окно при запуске процесса
Добрый день! Вопрос вот такой весьма срочный возник. Есть код старта процесса консольного.
Скрыть окно программы, чтобы оно не отображалось при Alt + Tab
Добрый день! Скрыл окно программы таким образом: this.ShowInTaskbar = false;.
Как скрыть дополнительно диалоговое окно в бат файле при работе с bitsadmin
Необходимо раскатить ПО через Bitsadmin, на Пк запускаю скачивание через в планировщике в котором.
Завершение скрипта в PowerShell
Я искал способ завершить сценарий PowerShell (PS1), когда в функции возникает неисправимая ошибка. Например:
Я понимаю, что это старая запись, но я часто возвращаюсь к этой теме, так как это один из лучших результатов поиска при поиске по этой теме. Однако я всегда оставляю более смущенным, чем когда приходил из-за противоречивой информации. В конечном счете, я всегда должен выполнять свои собственные тесты, чтобы понять это. Так что на этот раз я опубликую свои выводы.
TL; DR Большинство людей захотят использовать Exit для завершения запущенных скриптов. Однако, если ваш скрипт просто объявляет функции, которые впоследствии будут использоваться в оболочке, вы захотите использовать их Return в определениях указанных функций.
Выход против возврата против перерыва
Выход: это «выйдет» из текущего запущенного контекста. Если вы вызываете эту команду из скрипта, он выйдет из скрипта. Если вы вызовете эту команду из оболочки, она выйдет из оболочки.
Примечание. По умолчанию, если щелкнуть правой кнопкой мыши сценарий, чтобы запустить его в PowerShell, после его запуска PowerShell автоматически закроется. Это не имеет ничего общего с Exit командой или чем-то еще в вашем скрипте. Это просто поведение PowerShell по умолчанию для сценариев, запускаемых с использованием этого конкретного метода запуска сценария. То же самое верно для командных файлов и окна командной строки.
Возврат: возврат к предыдущему пункту вызова. Если вы вызовете эту команду из скрипта (вне каких-либо функций), она вернется в оболочку. Если вы вызовете эту команду из оболочки, она вернется в оболочку (которая является предыдущей точкой вызова для одной команды, запущенной из оболочки). Если вы вызываете эту команду из функции, она вернется туда, откуда была вызвана функция.
Перерыв: это вырвется из петель и переключит дела. Если вы вызываете эту команду, не находясь в цикле или переключении, она выйдет из сценария. Если вы вызываете Break внутри цикла, который вложен в цикл, он будет прерываться только из цикла, в котором он был вызван.
Существует также интересная особенность, заключающаяся в том, что Break вы можете добавить префикс цикла к метке, а затем выйти из этого помеченного цикла, даже если Break команда вызывается внутри нескольких вложенных групп в этом помеченном цикле.
Как запустить PowerShell в скрытом режиме
Иногда может потребоваться запустить скрипт PowerShell в скрытом режиме, незаметно для пользователя. Достичь этого можно различными способами, о некоторых я сегодня расскажу.
Способ первый
Начиная со второй версии PowerShell при запуске можно использовать параметр -WindowStyle со значением Hidden. Это позволяет осуществить запуск в скрытом режиме, без открытия консоли. Предположим, что у меня в папке C:\Temp лежит скрипт hello.ps1, который надо ″по тихому″ выполнить при входе пользователя. Для этого используем следующую команду:
Теоретически скрипт должен выполниться в фоне, незаметно для пользователя. Но на практике этот способ работает не всегда, в некоторых случаях во время выполнения скрипта окно PowerShell остается открытым. Поэтому, на всякий случай, рассмотрим еще пару способов запустить PowerShell в скрытом режиме.
Способ второй
Полученный код добавляем в начало скрипта.
Способ третий
Скрыть запуск PowerShell можно, как ни странно, с помощью VBScript. Для этого создаем vbs-файл следующего содержания:
Цифра 0 в скрипте означает запуск в скрытом виде, false — не ждать окончания выполнения команды.
Теперь для запуска PowerShell скрипта надо запустить этот vbs-файл и он тихо выполнится.
В заключение уточню, что все три способа не могут полностью скрыть запуск скрипта. При запуске все равно видно всплывающее окно. Заметить этот момент сложно, поскольку окно всплывает на доли секунды, но все же можно.
Powershell не закрывать окно после выполнения скрипта
Вопрос
Задача:
Запускать приложение еженедельно и в отведенное время. Приложение должно запускаться поверх остальных окон, затем приложение должно закрываться через отведенное время. Уже есть скрипт на запуск и закрытие приложения, остается запуск по расписанию, а также запуск поверх остальных окон.
taskkill /f /im имя.exe
exit
VBS:
Set WshShell = CreateObject(«WScript.Shell»)
WshShell.Run chr(34) & «путь файл.bat» & Chr(34), 0
Set WshShell = Nothing
В программировании не разбираюсь. Заранее благодарю!
Ответы
Давайте есть слона по частям:
Пример скрипта выше прост для понимания если вы владеете английским со словарем
В первой строке мы указываем путь к программе (поменяйте на свой)
Запускаем процесс => меняем настройки окна (попробуйте на своей программе что вам больше подходит 3 или 4 и оставьте только 1 вариант, дабы не плодить лишних действий) => ждем 60 секунд (для теста можете поменять например на 10 или сколько нужно) => после чего закрываем программу
* для запуска скриптов PowerShell на ПК должна быть выставлена политика ExecutionPolicy:
Пока вы тестируете скрипт, уточните от какого пользователя и в какой момент должен выполняться скрипт (какие права у данного пользователя)
В общих чертах задача выглядит так
Настройки интуитивны но если возникнут вопросы укажите в чем проблема будем думать
В поле Program/Script не стоит обращать внимания на слово Script. Указываем путь (полный) к powershell.exe
В поле Add arguments указываем нечто по типу этого:
Где путь к файлу скрипта правите на свой не забывая пользователю от которого будет запускаться задача выдать права на чтение в необходимом каталоге
The opinion expressed by me is not an official position of Microsoft