使用存储的凭据

要轻松存储和检索加密凭据,请使用 PowerShell 的内置 XML 序列化(Clixml):

$credential = Get-Credential

$credential | Export-CliXml -Path 'C:\My\Path\cred.xml'

要重新导入:

$credential = Import-CliXml -Path 'C:\My\Path\cred.xml'

需要记住的重要一点是,默认情况下,它使用 Windows 数据保护 API,用于加密密码的密钥特定于用户和运行代码的计算机

因此,加密凭证不能由其他用户导入,也不能由同一用户导入

通过使用不同的运行用户和不同的计算机加密同一凭据的多个版本,你可以为多个用户提供相同的机密。

通过将用户和计算机名称放在文件名中,你可以以允许相同代码使用它们的方式存储所有加密机密,而无需对任何内容进行硬编码:

加密

# run as each user, and on each computer

$credential = Get-Credential

$credential | Export-CliXml -Path "C:\My\Secrets\myCred_${env:USERNAME}_${env:COMPUTERNAME}.xml"

使用存储凭据的代码:

$credential = Import-CliXml -Path "C:\My\Secrets\myCred_${env:USERNAME}_${env:COMPUTERNAME}.xml"

将自动加载正在运行的用户的文件版本(或者它将失败,因为该文件不存在)。