在Chef

时间:2017-09-18 14:18:32

标签: powershell chef local windows-server-2012

在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;。

  • CategoryInfo:未指定:([Write-Error],WriteErrorExcep

和灰

  • FullyQualifiedErrorId:Microsoft.PowerShell.Commands.WriteErrorExceptio

N,厨师script20170918-4004-f15k8h ...&#34;等

有人可以建议为什么字符串转换为SecureString在ISE中有效但在Chef配方中失败了吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

替换

$Password = ConvertTo-SecureString –AsPlainText –Force R4ndomT3xt

使用

$Password = "R4ndomT3xt" | ConvertTo-SecureString -AsPlainText –Force

很高兴有人可以扩展为什么这样做。