中文环境Powershell管道传递中文参数???乱码
不能上传图片(为灰色),我就把运行的结果粘贴上来,是以管理员身份运行的,环境也是中文,英文的用户名是可以的,中文的用户就错误了,用户名CN=???,组织单位OU=???,用户名和组织单位都是中文的,管道传递后就变乱码了,直接运行命令dsquery user -limit 0 "dc=domain,dc=com"是可以正常列出所有的域用户的,以管道传递过去后中文就乱码了,另外,同样的命令以批处理方式运行不出错,现在暂时是以批处理方式来运行了,但是Powershell比批处理更为强大,现在是能用Powershell的就尽量用Powershell了,所以也要知道为什么会出现乱码,避免下次再出现类似问题。
Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS C:\Users\Administrator> $host
Name : ConsoleHost
Version : 5.1.14393.1066
InstanceId : aea4c557-15c0-45f8-9380-a17117d3af5b
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : zh-CN
CurrentUICulture : zh-CN
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:\Users\Administrator> chcp
活动代码页: 936
PS C:\Users\Administrator> dsquery user -limit 0 "dc=,dc=com" | dsmod user -pwdneverexpires yes
dsmod 成功:CN=Administrator,CN=Users,DC=domain,DC=com
dsmod 成功:CN=Guest,CN=Users,DC=domain,DC=com
dsmod 成功:CN=DefaultAccount,CN=Users,DC=domain,DC=com
dsmod 成功:CN=krbtgt,CN=Users,DC=domain,DC=com
dsmod 失败:CN=???,OU=???,DC=domain,DC=com:找不到目录对象。
键入 dsmod /? 以获取帮助。
PS C:\Users\Administrator>