我有一个Powershell脚本,该脚本在Windows 10的计算机上作为installshield安装程序的一部分运行。Powershell版本(主要:5,次要:1,内部版本17134,修订版112)。开发人员机器(一切正常)(主要:5,次要:1,内部版本15063,修订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版本可能与此有关吗?
答案 0 :(得分:0)
结果是,AV中的编码命令有一个障碍。谢谢@TessellatingHeckler