使用ConvertFrom-SecureString解码凭据时遇类型转换错误求助
问题原因及修正方案
你的错误核心是参数类型不匹配:
$creds.GetNetworkCredential().Password返回的是普通明文字符串,但ConvertFrom-SecureString的-SecureString参数要求必须传入System.Security.SecureString类型对象,直接传字符串必然触发转换错误。
两种正确操作方式
1. 直接获取明文密码
如果你的需求是拿到明文密码,无需调用 ConvertFrom-SecureString,GetNetworkCredential().Password 已经直接返回明文:
$creds = Get-StoredCredential -Target PIN $plainTextPassword = $creds.GetNetworkCredential().Password # 输出或使用明文密码 $plainTextPassword
2. 将SecureString转为加密字符串(用于持久化存储)
如果是要把凭据中的SecureString密码转换为加密字符串(比如保存到文件),直接使用 $creds.Password 这个原生的SecureString对象即可:
$creds = Get-StoredCredential -Target PIN $encryptedPassword = ConvertFrom-SecureString -SecureString $creds.Password # 示例:保存到本地文件 $encryptedPassword | Out-File -Path "D:\savedPin.txt"
内容的提问来源于stack exchange,提问作者Emil
相关产品推荐
相关产品推荐

