Powershell 编码命令未执行
Powershell Encoded Command not executing
我有一个 powershell 脚本,它作为 installshield 安装程序的一部分在 Windows 10.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
执行策略设置为"Bypass",我只是想知道windows registry/settings/security/group policies/etc中是否有内容。这会阻止像这样的编码命令吗?为什么它以纯文本形式工作而不是编码形式? Powershell 版本与它有什么关系吗?
原来 AV 在编码命令上有一个块。谢谢@TessellatingHeckler
我有一个 powershell 脚本,它作为 installshield 安装程序的一部分在 Windows 10.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
执行策略设置为"Bypass",我只是想知道windows registry/settings/security/group policies/etc中是否有内容。这会阻止像这样的编码命令吗?为什么它以纯文本形式工作而不是编码形式? Powershell 版本与它有什么关系吗?
原来 AV 在编码命令上有一个块。谢谢@TessellatingHeckler