Sql 如何使用powershell在没有提示的情况下获取凭据对象

Sql 如何使用powershell在没有提示的情况下获取凭据对象,sql,azure,powershell,Sql,Azure,Powershell,我正在使用下面的命令 $SQLServerPSCred = Get-Credential 以获取凭据对象 如果没有提示,如何获取Creds对象 我试过下面的代码,但失败了 $SQLServerPSCred = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $Password 关于代码的实际问题,您没有包含太多信息。提示您使用第一个示例是正确的。正如你明确告诉它的那样 你的第二个例子

我正在使用下面的命令

$SQLServerPSCred = Get-Credential 
以获取凭据对象

如果没有提示,如何获取Creds对象

我试过下面的代码,但失败了

$SQLServerPSCred = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $Password

关于代码的实际问题,您没有包含太多信息。提示您使用第一个示例是正确的。正如你明确告诉它的那样

你的第二个例子是不完整的

有一个关于如何做到这一点的示例:

$secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force 
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)
如您所见,首先需要将密码转换为可以传递给凭证对象的SecureString。它还显示了稍微不同的语法,但这不重要

根据您正在做的事情以及脚本所在的位置,也值得为您的秘密寻找某种形式的“更安全”的存储。因为每个有权访问脚本的人都可以从中提取用户名和密码

一个选项是存储安全字符串。但请记住,安全字符串在某种程度上与用户有关。因此,您无法轻松地传递包含密码的文本文件


有关如何执行该检查的示例。这是一个基本的解决方案,根据您的需要可能会有更好的解决方案。

“但它正在失败”-它是如何失败的?错误消息?拒绝访问?密码应为安全字符串-有关详细信息,请参阅这是否回答了您的问题@MathiasR.Jessen错误消息为:Invoke-Sqlcmd2:调用带有“0”参数的“Open”时出现异常:“用户'abcd'登录失败”。@怀疑论者我尝试了这种方法,它允许我使用Get-Credential登录,但当我尝试使用$SQLServerPSCred=New Object-TypeName System.Management.Automation.PSCredential-ArgumentList$UserName,$Password时失败了我尝试过:$UserName=“abc”$Password=ConvertTo SecureString“abcdefgh”-AsPlainText-Force$SQLServerPSCred=New Object System.Management.Automation.PSCredential($UserName,$Password)我得到的错误是:Invoke-Sqlcmd2:调用带有“0”参数的“Open”时发生异常:“用户'abc'登录失败”。但是当我使用:$SQLServerPSCred=Get Credential然后传递凭据时…我可以登录。您是否尝试在密码周围使用单引号字符而不是此处显示的双引号?明文密码可能包含
$
字符,应按字面意思理解。另请参阅确保包含一个可能的域名。是的。该密码应包含在一个报价中…这对我很有用。