首页 > 解决方案 > 如何使用powershell在不提示的情况下获取凭据对象

问题描述

我正在使用以下命令,

$SQLServerPSCred = Get-Credential 

获取凭证对象。

如何在没有提示的情况下获取 Creds 对象?

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

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

标签: sqlazurepowershell

解决方案


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

对于您的第二个示例,它是不完整的。

PowerShell – How to create a PSCredential object by koteshblog有一个示例说明如何执行此操作:

$secpasswd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force 
$mycreds = New-Object System.Management.Automation.PSCredential ("username", $secpasswd)

如您所见,您首先需要将密码转换为可以传递给凭证对象的 SecureString。它还显示了稍微不同的语法,但这无关紧要。

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

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

有关如何执行此操作的示例,请查看Powershell 提示 – robcost 的存储和使用密码凭据。这是一个基本的解决方案,根据您的需要可能会有更好的解决方案。


推荐阅读