考虑使用powershell脚本来安装SQL Server。此脚本基于Colin's ALM Corner提供的内容。它已根据我的需要进行了编辑运行,并且一切正常,直到它到达Configuration.ini中包含使用密码为$
的帐户的部分。
AGTSVCACCOUNT="IHA\.service-sqlbts-dev"
AGTSVCPASSWORD='Pa$$word'
请注意,Configuration.ini密码确实有单引号我还尝试使用反引号转义$
也无效。
当密码在.ps1脚本中提供VIA命令行参数时,同样的密码可以正常工作(就像Colin一样)。
Setup.exe /ConfigurationFile=c:\temp\ConfigurationFile.ini /SQLSVCPASSWORD=P2ssw0rd /AGTSVCPASSWORD='Pa$$word'
但是移动Configuration.ini时同样的方法不起作用。
当密码包含在 Configuration.ini 中(而不是在$ cmd上提供密码时)是否有任何方法可以转义密码,或者我是否需要坚持使用命令行参数(或者新密码)。
答案 0 :(得分:0)
$Password='Pa$$word'
$cmd = "$setupDriveLetter\Setup.exe /ConfigurationFile=c:\temp\ConfigurationFile.ini /SQLSVCPASSWORD=P2ssw0rd /AGTSVCPASSWORD=`'$Password`' /SAPWD=P2ssw0rd"
$cmd
为$ cmd生成一个字符串值,即......
\Setup.exe /ConfigurationFile=c:\temp\ConfigurationFile.ini /SQLSVCPASSWORD=P2ssw0rd /AGTSVCPASSWORD='Pa$$word' /SAPWD=P2ssw0rd
使用这种方法,当我将$ cmd设置为一个简单的模块(如set-content)的参数时,结果看起来与上面的结果字符串值相同。