Can't redirect PowerShell output when -EncodedCommand used.
For my tests I am using 'Start > Run' dialog (not the cmd.exe).

This works fine, and I get 9 in log.txt

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

But this does not work:

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

So how can I redirect output in this case?

Experimental code:

    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)
    }
Can't redirect PowerShell output when -EncodedCommand used.
===

For my tests I am using 'Start > Run' dialog (not the cmd.exe).

This works fine, and I get 9 in log.txt

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

But this does not work:

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

So how can I redirect output in this case?

Experimental code:

    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)
    }