我正在尝试在PowerShell中获取命令的输出并对其进行编码,然后再次对其进行解码,以接收所述命令的结果,如图所示。
$enc = [system.Text.Encoding]::UTF8
$bytes = $enc.GetBytes((Invoke-Expression "net users"))
$enc.GetString($bytes)
但是,与原始的
net users
命令相比,结果格式不正确。我尝试将编码更改为ASCII和Unicode,但结果仍然格式错误。关于如何保持格式的任何想法?
最佳答案
问题不是由编码引起的,而是因为PowerShell会破坏命令输出,除非您将其强制为字符串:
$bytes = $enc.GetBytes((Invoke-Expression "net users" | Out-String))
您不需要
Invoke-Expression
BTW。这也将起作用:$bytes = $enc.GetBytes((net users | Out-String))