首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >慎用net user Administrator "密码"的双引号

慎用net user Administrator "密码"的双引号

原创
作者头像
Windows技术交流
发布2025-08-15 12:00:59
发布2025-08-15 12:00:59
1310
举报
文章被收录于专栏:Windows技术交流Windows技术交流

问题:powershell执行net user Administrator "xRycdC302ji!a#Qyu$^C" 设置密码成功了,但密码不是xRycdC302ji!a#Qyu$^C

详述:

powershell脚本里是

net user Administrator "密码"

但实际上,这样是有缺陷的,特殊字符可能出现语法情况:执行不下去或者执行下去了是错的

①执行不下去,例如转义字符`结尾

net user Administrator "QYv_lr6dx6cj`"

②执行下去了是错的,例如:

net user Administrator "xRycdC302ji!a#Qyu$^C"

cmd.exe /c 'net user Administrator "xRycdC302ji!a#Qyu$^C"'

是不一样的结果,虽然都设置密码成功,但cmd.exe /c 'net user Administrator "xRycdC302ji!a#Qyu$^C"'才是符合预期的

如图,虽然2个都成功,但效果不一样,如果拿xRycdC302ji!a#Qyu$^C去登录,后者能登录,前者不行

代码语言:txt
复制
在 PowerShell 里,双引号会做插值($ 开头会被当作变量)、反引号是转义符号

设置密码的时候需要注意,尤其是# $ ^ ` /等特殊字符尽量不用

部分特殊字符在双引号里的特殊位置、特殊组合,会被解析或改变,导致传给 net 的实际字符串和你看到的不一致

如果密码可能以反引号结尾或包含 $ 等字符,切忌使用双引号,单引号方式最可靠

直接用 cmd.exe 调用或用 stop-parsing (--%) 会避免 PowerShell 的解析,所以那种方式得到的密码是正确的

如果密码里有多个单引号,比如有3个单引号(字面意思,即肉眼在锁屏界面要输入3个单引号),怎么用命令设置密码?

代码语言:txt
复制
# 密码示例:Abc'''def321(包含 3 个连续单引号)
$pwPlain = 'Abc''''''def321'   # 6 个单引号代表字面上的 3 个单引号
$pw = ConvertTo-SecureString $pwPlain -AsPlainText -Force
Set-LocalUser -Name 'Administrator' -Password $pw
代码语言:txt
复制
$quotes = [string]::new([char]39, 3)
$pwPlain = 'Abc' + $quotes + 'def321'
$pwPlain
$secure = ConvertTo-SecureString $pwPlain -AsPlainText -Force
Set-LocalUser -Name 'Administrator' -Password $secure
代码语言:txt
复制
$quotes = [string]::new([char]39, 3)
$pwPlain = 'Abc' + $quotes + 'def321'
$pwPlain
$user = [ADSI]"WinNT://./Administrator,user"
$user.SetPassword($pwPlain)
  • 一旦把密码构造成变量($pwPlain),Set-LocalUser / ConvertTo-SecureString / SetPassword不会再被 PowerShell 字面解析影响,安全可靠。

在powershell里执行net user Administrator "xRycdC302ji!a#Qyu$^C"生效的密码一般不是字面密码,具体是什么,还真不一定,以下就是几种生效不一样的情况

①生效的密码是xRycdC302ji!a#QyuC

代码语言:txt
复制
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是,所以最终密码是xRycdC302ji!a#QyuC(用替代$^占位即可)

②生效的密码是xRycdC302ji!a#QyuxRycdC302ji!a#Qyu$^CC

代码语言:txt
复制
'xRycdC302ji!a#Qyu$^C'|Format-Hex -Encoding Unicode
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是xRycdC302ji!a#Qyu$^C,所以最终密码是xRycdC302ji!a#QyuxRycdC302ji!a#Qyu$^CC(用xRycdC302ji!a#Qyu$^C替代$^占位即可)

③生效的密码是xRycdC302ji!a#QyunetC

代码语言:txt
复制
net user Administrator "QYv_lr6dx6cj"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是net,所以最终密码是xRycdC302ji!a#QyunetC(用net替代$^占位即可)

④生效的密码是xRycdC302ji!a#QyuhostC

代码语言:txt
复制
host
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是host,所以最终密码是xRycdC302ji!a#QyuhostC(用host替代$^占位即可)

⑤生效的密码是xRycdC302ji!a#QyuhostnameC

代码语言:txt
复制
hostname
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是hostname,所以最终密码是xRycdC302ji!a#QyuhostnameC(用hostname替代$^占位即可)

⑥生效的密码是xRycdC302ji!a#QyuwhoamiC

代码语言:txt
复制
whoami
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode
net user Administrator "xRycdC302ji!a#Qyu$^C"
"xRycdC302ji!a#Qyu$^C"|Format-Hex -Encoding Unicode

这段命令里,net user Administrator "xRycdC302ji!a#Qyu$^C"之前的上一个字符串是whoami,所以最终密码是xRycdC302ji!a#QyuwhoamiC(用whoami替代$^占位即可)

总结:

代码语言:txt
复制
net user Administrator "xRycdC302ji!a#Qyu$^C"在powershell里执行后,
真正生效的密码跟net命令之前的那句命令有关,$^会被前一句命令的第一个字符串占位替换

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档