PowerShell EncodedCommand Failing - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь открыть простое окно сообщения, используя флаг Powershell -EncodedCommand, но оно продолжает давать сбой. Я пробовал гуглить последние несколько часов, но, похоже, это не сработало. Это почти похоже на ошибку кодирования, но я использую обычный UTF-8 со стандартными ASCII-обратно совместимыми символами.

Команда, которая продолжает сбой:

Powershell.exe -EncodedCommand QWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBQcmVzZW50YXRpb25Db3JlLFByZXNlbnRhdGlvbkZyYW1ld29yaztbU3lzdGVtLldpbmRvd3MuTWVzc2FnZUJveF06OlNob3coJ3dvcmtpbmcnKTs=

Расшифрованная команда b64:

Add-Type -AssemblyName PresentationCore,PresentationFramework;[System.Windows.MessageBox]::Show('working');

Чего мне не хватает? Спасибо за помощь с моим вопросом noob

1 Ответ

0 голосов
/ 08 мая 2018

Строка в кодировке Base64, переданная в -EncodedCommand, должна кодировать байтовое представление строки UTF-16LE ("Unicode") - UTF-8 равен , а не поддерживается:

$cmd = 'Add-Type -AssemblyName PresentationCore,PresentationFramework;[System.Windows.MessageBox]::Show(''working'')'
$encodedCmd = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($cmd))

powershell.exe -EncodedCommand $encodedCmd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...