gpt4 book ai didi

powershell - 调用命令更改输出编码

转载 作者:行者123 更新时间:2023-12-02 23:53:28 25 4
gpt4 key购买 nike

我使用的脚本可在几台计算机上运行,​​每台计算机上都运行Net命令查询,并使用Compare-Object比较任何一台计算机的结果。

脚本是:

Net users /domain

我的环境中的某些用户使用西类牙语字母。
在本地运行命令时,输出将返回正确的字母为西类牙语的用户,
但是,当使用Invoke-Command从另一台计算机远程运行它时,这些特定用户的输出将显示为符号。

在本地运行的用户的示例:
Net users /domain
Adam Ñ

使用Invoke-Command远程运行的用户的示例:
Invoke-Command -Computername MyWin7Comp -scriptblock {
Net users /domain}
Adam ¥

我在Windows 10 1803中找到了一个修复程序,该修复程序可以选择始终使用UTF-8 Unicode。
Windows 10 1803 option only

而且有效!在此Windows 10 1803机器上远程运行脚本可以完美运行,但我也想在较旧版本中运行...

我能做什么?

谢谢

最佳答案

我设法使它起作用。
我在网上搜索答案,并遇到了这个帖子:
https://social.technet.microsoft.com/Forums/en-US/b92b15c8-6854-4d3e-8a35-51b4b56276ba/powershell-ise-vs-consoleoutputencoding?forum=ITCG

有一个答案解释说,在使用PowerShell ISE时(我基本上是在使用),该控制台实际上没有该控制台的进程。这就是为什么当我尝试使用Jeren Mostert和Theo答案时,它没有用,因为实际上没有控制台。

我要做的是使用Out-Null运行EXE,这将打开一个名为“conhost.exe”的进程,该进程实际上是控制台。然后运行[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8,最终启动了Invoke-Command,该命令给了我编码的结果:)

我正在运行的脚本是:

Ping.exe | Out-Null
[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8
Invoke-Command -Computername MyW7Comp -ScriptBlock {Net Users /domain}

结果:
Adam Ñ

关于powershell - 调用命令更改输出编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51968908/

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