在ISE中运行时,以下用于创建两个虚拟帐户的PowerShell代码可以正常工作:
$Password = ConvertTo-SecureString –AsPlainText –Force R4ndomT3xt
New-LocalUser -Name User1 -password $Password -PasswordNeverExpires -UserMayNotChangePassword
New-LocalUser -Name User2 -password $Password -PasswordNeverExpires -UserMayNotChangePassword
net user User1 /active:no
net user User2 /active:no
但是当在下面的Chef食谱中使用时:
powershell_script 'Dummy' do
code <<-EOH
$Password = ConvertTo-SecureString –AsPlainText –Force R4ndomT3xt
New-LocalUser -Name User1 -password $Password -PasswordNeverExpires -UserMayNotChangePassword
New-LocalUser -Name User2 -password $Password -PasswordNeverExpires -UserMayNotChangePassword
net user User1 /active:no
net user User2 /active:no
EOH
End
..抛出
&#34; ...无法绑定参数&#39; SecureKey&#39;。无法转换&#34; R4ndomT3xt&#34;值
类型&#34; System.String&#34;输入&#34; System.Security.SecureString&#34;。
和灰
N,厨师script20170918-4004-f15k8h ...&#34;等
有人可以建议为什么字符串转换为SecureString在ISE中有效但在Chef配方中失败了吗?
提前致谢。
答案 0 :(得分:0)
替换
$Password = ConvertTo-SecureString –AsPlainText –Force R4ndomT3xt
使用
$Password = "R4ndomT3xt" | ConvertTo-SecureString -AsPlainText –Force
很高兴有人可以扩展为什么这样做。