gpt4 book ai didi

powershell - 使用 -EncodedCommand 时无法重定向 PowerShell 输出

转载 作者:行者123 更新时间:2023-12-02 07:56:23 26 4
gpt4 key购买 nike

对于我的测试,我使用“开始 > 运行”对话框(不是 cmd.exe)。

这工作正常,我在 log.txt 中得到 9

powershell -Command 4+5 > c:\log.txt

但这不起作用:

powershell -EncodedCommand IAA1ACsANwAgAA== > c:\log.txt

那么在这种情况下如何重定向输出呢?

实验代码:

function Test
{
$cmd = { 5+7 }
$encodedCommand = EncodeCommand $cmd

StartProcess "powershell -Command $cmd > c:\log.txt"
StartProcess "powershell -EncodedCommand $encodedCommand > c:\log2.txt"
}

function StartProcess($commandLine)
{
Invoke-WMIMethod -path win32_process -name create -argumentList $commandLine
}

function EncodeCommand($expression)
{
$commandBytes = [System.Text.Encoding]::Unicode.GetBytes($expression)
[Convert]::ToBase64String($commandBytes)
}

最佳答案

“运行”对话框似乎根本不提供重定向。 According to this usenet post如果你有一个控制台,你只会得到重定向。我想知道重定向参数是否正在被 powershell.exe 解析,如果它没有接收到编码输入,它会选择重定向?听起来像是 Raymond Chen 的问题.

无论如何,这是可行的,但代价是产生了一个无用的控制台:

cmd /c powershell -EncodedCommand IAA1ACsANwAgAA== > c:\ps.txt

关于powershell - 使用 -EncodedCommand 时无法重定向 PowerShell 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/731509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com