使用Dell Command Update命令行设置BIOS密码遇错误104求正确语法
解决DCU CLI错误104(语法错误)的正确PowerShell写法
错误104通常是因为DCU CLI无法正确解析你传递的-biospassword参数格式,问题出在PowerShell传递参数时的解析逻辑,以及DCU对参数值的引号要求。以下是几种可靠的解决方法:
方法1:使用--%停止PowerShell参数解析
--%会让PowerShell直接将后续参数原封不动传递给外部程序,避免解析干扰:
$var = $env:COMPUTERNAME.ToLower() .\dcu-cli.exe --% -biospassword="$var"
注意:--%仅在PowerShell 3.0及以上版本支持,且变量会在--%之前完成替换。
方法2:转义引号后传递参数
手动转义双引号,确保DCU CLI接收到带引号的密码值:
$var = $env:COMPUTERNAME.ToLower() .\dcu-cli.exe "-biospassword=`"$var`""
这里的反引号`是PowerShell的转义符,用于让外部程序识别到包裹密码的双引号。
方法3:使用Start-Process传递参数(最稳定)
对于复杂的外部程序调用,Start-Process的参数传递逻辑更清晰,不易出错,也更适配无人值守场景:
$var = $env:COMPUTERNAME.ToLower() Start-Process -FilePath ".\dcu-cli.exe" -ArgumentList "-biospassword=`"$var`"" -Wait -NoNewWindow
-Wait会等待DCU CLI执行完成后再继续脚本,-NoNewWindow避免弹出新窗口。
原写法报错原因
DCU CLI要求-biospassword的参数值必须用引号包裹(即使密码没有特殊字符),而你原写法传递的是-biospassword=xxx(无引号),导致CLI判定语法错误返回104。PowerShell默认不会自动为参数值添加引号,需要手动处理引号的传递。
内容的提问来源于stack exchange,提问作者EnormousSaturn
相关产品推荐
相关产品推荐

