You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从.cred文件中提取PSCredential的密码及报错解决

问题根源

你遇到的错误是因为直接将SecureString类型的密码输出到文件,实际保存的是System.Security.SecureString这个无效字符串,而非可解析的加密密码内容。当读取时ConvertTo-SecureString无法识别这种格式,自然返回null,导致后续创建PSCredential实例失败。

修正后的代码

保存凭证的函数

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($Username, $PWord)
# 将SecureString转换为可持久化的加密字符串
$encryptedPassword = $cred.Password | ConvertFrom-SecureString
$encryptedPassword | Out-File "some\path\$($cred.Username).cred" -Force

获取凭证的函数

# 使用-Raw参数确保读取完整的加密字符串,避免换行拆分导致格式错误
$encryptedPassword = Get-Content "some\path\$($Username).cred" -Raw
$securePassword = $encryptedPassword | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username, $securePassword

return $cred
关键注意点
  • 这种加密方式绑定当前用户账户和机器环境,只能在保存凭证的同一用户、同一台机器下读取。
  • 必须通过ConvertFrom-SecureString将SecureString转为加密文本才能持久化,反之用ConvertTo-SecureString还原为SecureString。

内容的提问来源于stack exchange,提问作者undetected

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:21:01