Проблема с цитатами из скриптов Powershell - PullRequest
0 голосов
/ 27 февраля 2019

Я запускаю скрипт powershell ниже.Обратите внимание, что параметр внутри GetProxy () находится внутри одинарных кавычек.Если я использую двойные кавычки вместо одинарных, сценарий не запускается.ТАК это работает

c:\>powershell.exe  IEX(Invoke-WebRequest http://example.com/example.html -ProxyUseDefaultCredentials  -Proxy $([System.Net.WebRequest]::GetSystemWebProxy().GetProxy('http://example.com/').Absoluteuri))

Это не работает

c:\>powershell.exe  IEX(Invoke-WebRequest http://example.com/example.html -ProxyUseDefaultCredentials  -Proxy $([System.Net.WebRequest]::GetSystemWebProxy().GetProxy("http://example.com/").Absoluteuri))

Кто-нибудь знает, как запустить этот скрипт без использования одинарных кавычек внутри GeProxy ()?.

Примечаниечто я не могу запустить это внутри сценария PS1.Это должно быть выполнено встроенным, как в приведенном выше фрагменте.

1 Ответ

0 голосов
/ 27 февраля 2019

Так же, как сказал @vonPryz, вы можете попытаться закодировать вашу рабочую команду с одинарной кавычкой в ​​Base64, а затем запустить powershell.exe с закодированной строкой, сначала запустив ее в powershell:

[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("'IEX(Invoke-WebRequest http://example.com/example.html -ProxyUseDefaultCredentials  -Proxy $([System.Net.WebRequest]::GetSystemWebProxy().GetProxy('http://example.com/').Absoluteuri))'"))

Затемвозьмите для вывода и запустите это из cmd:

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