如何使用 PowerShell 安全地存储凭据
您必须在 PowerShell 脚本中进行身份验证并在 PowerShell 中存储密码。有时,您希望获得凭据提示来填写凭据并运行脚本。另一次,您希望自动执行任务并以加密格式安全地保存密码。在本文中,您将了解如何使用 PowerShell 安全地存储凭据。
交互式与非交互式
- 交互的方法需要用户交互,例如提示用户输入用户名和密码。当提供必要的信息时,它会进一步进行。
- 非交互式该方法在脚本执行期间不需要用户输入,并且通常依赖于预先配置的设置、自动化过程或提前提供的数据。
重要的:始终安全地填写密码,切勿以纯文本形式填写。
参见:如何在有或没有凭据的情况下从 iPad 中删除 Meraki Management
如果您希望脚本提示输入用户名和密码,请按照以下方法之一中的步骤操作。
方法1.获取凭证
- 运行获取凭证cmdlet 将您的凭据安全地存储在$信用点多变的
$Creds = Get-Credential
- 将出现 Windows PowerShell 凭据请求,您必须在其中填写证书
- 运行$信用点PowerShell 中的变量
$Creds
- 输出显示用户名和密码显示为安全字符串
UserName Password
-------- --------
myusername System.Security.SecureString
方法 2.PSCredential
- 运行以下命令将您的凭据安全地存储在$信用点多变的
$Creds = [System.Management.Automation.PSCredential]::new((Read-Host -Prompt "Enter username"), (Read-Host -Prompt "Enter password" -AsSecureString))
- 输入用户名和密码
Enter username: myusername
Enter password: ****************
- 运行$信用点PowerShell 中的变量
$Creds
- 输出显示用户名和密码显示为安全字符串
UserName Password
-------- --------
myusername System.Security.SecureString
当您有一个交互式运行的脚本并且每次都可以输入凭据时,这非常有用。但是,如果您不在计算机后面,并且希望通过计划任务自动执行脚本,该怎么办?然后,你必须使用不同的方法。
在 PowerShell 中存储凭据以实现自动化(非交互式)
要将凭据存储在系统上以便每次运行 PowerShell 脚本时都会加载凭据,您需要执行以下步骤:
- 运行获取凭证cmdlet 将您的凭据安全地存储在$信用点多变的
$Creds = Get-Credential
- 输入您的凭据
- 将凭证导出到加密的 XML 文件
$Creds | Export-CliXml -Path "C:credscredential.xml"
笔记:这导出-Clixmlcmdlet 使用 Windows 数据保护 API 加密凭据对象。加密可确保只有您的用户帐户才能解密凭证对象的内容。导出的 CLIXML 文件不能在不同的计算机上或由不同的用户使用。
- 导航至路径并验证 XML 文件
- 打开XML文件并检查密码是否已加密
- 在您的 PowerShell 脚本中,您现在可以运行导入Clixmlcmdlet 并将其指向 XML 文件所在的路径,以便加载用户名和加密密码
$Creds = Import-CliXml -Path "C:credscredential.xml"
就是这样!
结论
您学习了如何使用 PowerShell 安全地存储凭据。在 PowerShell 中保存凭据有多种方法。检查它是交互式脚本还是非交互式脚本并应用正确的方法。始终确保密码填写安全,而不是明文。
您喜欢这篇文章吗?您可能还喜欢如何连接到 Microsoft Graph PowerShell。不要忘记关注我们并分享这篇文章。
