Powershell编码命令未执行

Posted

技术标签:

【中文标题】Powershell编码命令未执行【英文标题】:Powershell Encoded Command not executing 【发布时间】:2018-12-24 08:05:55 【问题描述】:

我有一个 powershell 脚本,它作为 installshield 安装程序的一部分在装有 Windows 10 的机器上运行。Powershell 版本(主要:5,次要:1,内部版本 17134,修订版 112)。开发机器(一切正常)(主要:5,次要: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版本与它有什么关系吗?

【问题讨论】:

您是否收到任何错误消息?尝试将$ErrorActionPreference = 'Stop'; 放入$text 并重试。您还可以检查事件查看器以查看是否有任何启发式方法正在运行? @TheIncorrigible1 我把它放在脚本的第一行?执行此操作时,我没有看到任何错误。 您的原始命令对我有用。您是否有阻止编码命令的防病毒引擎? @TessellatingHeckler 我该如何检查? 您是否安装了任何 AV 软件,它是否显示其控制台中有任何被阻止的内容? 【参考方案1】:

原来在编码命令上存在来自 AV 的块。谢谢@TessellatingHeckler

【讨论】:

以上是关于Powershell编码命令未执行的主要内容,如果未能解决你的问题,请参考以下文章

sql Powershell Migration工具http://stackingcode.com/blog/2011/10/12/database-migrations-with-powershel

CentOS7 安装执行 VmwareCore

powershell 来自https://stackoverflow.com/questions/31051103/how-to-export-a-class-in-powershell-v5-mod

批处理文件中的 Powershell:错误和命令未执行

PowerShe 使用证书签名 ll脚本

ansible管理windows集群