我需要在各种操作系统上运行一些 PowerShell 脚本。他们中的大多数是英文版本,但是,有些是本地化的,例如德语、法语、西类牙语等。问题是本地系统管理员现在大多不使用 PowerShell,如果脚本失败并向他们抛出错误,而不是阅读它,他们只是将此类错误消息的屏幕截图发送给我,如果此错误的原因不明显,我会坚持将其输入 g。翻译以了解发生了什么。
是否有一个开关可以运行整个脚本或单个命令,或者一个参数或任何其他方式来强制以英语而不是该特定机器的默认语言显示 PowerShell 中的错误?
请您参考如下方法:
您可以像这样更改管道线程的 CurrrentUICulture :
[Threading.Thread]::CurrentThread.CurrentUICulture = 'fr-FR'; Get-Help Get-Process
我使用的是英文系统,但在执行上述行之前,我更新了帮助,如下所示:
Update-Help -UICulture fr-FR
有了这个,上面的 Get-Help 电话在我的英语系统上为我提供了法语帮助。注意:如果我把对 Get-Help 的调用放在一个新行上,它不起作用。确认 PowerShell 在每个管道开始之前重置 CurrentUICulture,这就是当命令在同一管道中时它起作用的原因。
在您的情况下,您需要让人们使用以下方法安装英语帮助:
Update-Help -UICulture en-US
然后像这样执行你的脚本:
[Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'; .\myscript.ps1