使用存储的凭据
要轻松存储和检索加密凭据,请使用 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"
将自动加载正在运行的用户的文件版本(或者它将失败,因为该文件不存在)。