Powershell安全字符串转换

时间:2012-02-15 09:31:24

标签: sql-server powershell ssms

您好我正在尝试这样做

Import-Csv C:\sl.csv |$pass = convertto-securestring "abc123"-asplaintext -force | ForEach-Object {New-Item $(Encode-Sqlname $_.Name) -ItemType Registration -Value ("server=$($_.Name);integrated security=true") -Credential (New-Object System.Management.Automation.PSCredential("sa", $pass)) }

但是得到这样的错误

Expressions are only allowed as the first element of a pipeline.
At line:1 char:29
+ Import-Csv C:\sl.csv |$pass  <<<< = convertto-securestring "abc123"-asplaintext -fo
rce | ForEach-Object {New-Item $(Encode-Sqlname $_.Name) -ItemType Registration -Value ("server=$($_.Name);integrated security=true") -Credential (New-Object System.Management.Automation.PSCredential("sa", $pass)) }
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline

我基本上希望能够添加用户名和密码(使用sql身份验证)并尝试将我的密码转换为securestring,而不是从外观上做得很好。请帮忙 我去了这个链接,那里的代码很有帮助,但问题是当我右键单击我的注册服务器并看到属性时,我看到它处于Windows身份验证模式而不是sql身份验证模式

1 个答案:

答案 0 :(得分:0)

尝试在管道之前以$ pass分配值:

$pass = convertto-securestring "abc123"-asplaintext -force 
Import-Csv C:\sl.csv | ForEach-Object {New-Item $(Encode-Sqlname $_.Name) -ItemType Registration -Value ("server=$($_.Name);integrated security=true") -Credential (New-Object System.Management.Automation.PSCredential("sa", $pass)) }