Закодированная команда Powershell не выполняется

У меня есть сценарий PowerShell, который запускается как часть установщика installshield на машине с Windows 10. Версия Powershell (Major: 5, Minor: 1, Build 17134, Revision 112). Машина разработчика (где все работает нормально) (Major: 5, Minor: 1, Build 15063, Revision 1155)

По сути, сценарий .bat запускает закодированную команду powershell, но она не выполняется, я упростил ее до простого сценария, чтобы показать, о чем я говорю:

Скрипт Powershell:

$text="Write-Output Hello"
$encoded=[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($text))

Write-Output "Trying encoded command:"
powershell -EncodedCommand $encoded

Write-Output "Trying not encoded command:"
powershell $text

Это результат:

Trying encoded command:
Trying not encoded command:
Hello

Я также добавил декодированный оператор для дополнительной проверки:

$decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($encoded))
Write-Output "Decoded:"
Write-Output $decoded

Выход:

Trying encoded command:
Trying not encoded command:
Hello
Decoded:
Write-Output Hello

Политика выполнения установлена ​​на «Обход», мне просто интересно, есть ли что-то в реестре Windows / настройках / безопасности / групповых политиках / и т. Д. что будет блокировать такие закодированные команды? Почему он работает с обычным текстом, но не в кодировке? Может ли версия Powershell иметь к этому какое-то отношение?


person nessa    schedule 16.07.2018    source источник
comment
Вы получаете сообщения об ошибках? Попробуйте ввести $ErrorActionPreference = 'Stop'; в $text и повторите попытку. Вы также можете проверить программу просмотра событий, чтобы узнать, работает ли эвристика?   -  person Maximilian Burszley    schedule 16.07.2018
comment
@ TheIncorrigible1 Я помещаю это в первую строчку скрипта? Я не видел ошибок, когда это делал.   -  person nessa    schedule 16.07.2018
comment
Ваши исходные команды работают на меня. У вас есть антивирус, блокирующий закодированные команды?   -  person TessellatingHeckler    schedule 16.07.2018
comment
@TessellatingHeckler Как я могу это проверить?   -  person nessa    schedule 16.07.2018
comment
Установлено ли у вас какое-либо антивирусное программное обеспечение, и показывает ли оно, что на его консоли что-то заблокировано?   -  person Adam Parsons    schedule 17.07.2018
comment
Я удалил свой ответ с кавычками, так как это не имеет значения. Это произошло из-за другого сценария, с которым я сталкивался в прошлом. Вам нужно проверить, не мешает ли AV, потому что у меня тоже нет этой проблемы. У меня отлично работает.   -  person Adam Parsons    schedule 17.07.2018


Ответы (1)


Оказывается, AV блокировал закодированные команды. Спасибо @TessellatingHeckler

person nessa    schedule 17.07.2018