2016-04-26 5 views
0

У меня есть сценарий, который я написал в PowerShell ISE, который работает отлично. Это даже работает, если я копирую и вставляю его в обычный PowerShell. Однако, когда я запускаю его с помощью обычного PowerShell, создавая его по умолчанию, чтобы открыть его, затем дважды щелкните его, он просто открывается, отображает красный текст и закрывается.PowerShell выхода

Есть ли способ, чтобы остановить его от закрытия, так что я могу просмотреть красный текст или это общая проблема, которая может быть установлена ​​легко?

+0

Один простой способ, и хорошая практика, чтобы использовать в любом случае, чтобы использовать команду Start-Transcript около начала сценария, так что выход записывается в файл. –

+0

.psq скрипт должен быть открыт PowerShell. Вы можете просто запустить его в PowerShell, например, по имени. . \ Script.ps1. – Alexan

+0

Запустите стенограмму. Я бросил его туда, не дал результата. Не сделал никакого файла в обычном PS, но в ISE он сделал. Так что никакой помощи нет. – Captor

ответ

0

Попробуйте запустить из CMD строки с помощью:

powershell -noexit <path to the script> 

Кроме того, я думаю, что сценарий ошибки может быть метания может быть связано с политикой выполнения на вашем компьютере, блокируя скрипт от исполнения. В противном случае расшифровка будет работать. Убедитесь, что политика выполнения установлена ​​соответствующим образом с помощью командлета Set-ExecutionPolicy.

+0

Довольно уверен, что было установлено, что это будет работайте в этом сценарии без ошибок. Это не объясняет проблему. – Matt

+0

Вы правы @Matt. Я еще не видел «Показывать еще 15 комментариев». Виноват. Тем не менее мой ответ отвечает на исходный вопрос. Не так ли. –

+0

Я думаю, что сейчас вопрос непонятен, поэтому есть так много комментариев. На это нельзя ответить конкретно, пока мы не узнаем больше. Если это правильный ответ, то это, безусловно, обман, но в то же время он не может быть уверен. ОП изменил ассоциацию, которая заставляет задуматься. – Matt

0

Практика установки скриптов Powershell для запуска при двойном щелчке является highly discouraged по соображениям безопасности. Перед тем, как приступить к работе, убедитесь, что вы знаете о рисках.

Вы не можете просто «сделать Powershell в качестве программы по умолчанию» через интерфейс Проводника Windows. Run с пункта контекстного меню Powershell использует следующую команду:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"

В «безопасный» способ (имея в виду выше оговоркой), чтобы делать то, что вы пытаетесь достичь, чтобы использовать Default Programs Editor для установки Запуск с параметром контекстного меню Powershell будет по умолчанию.