.net - PSCredential 不包含名为“GetNetworkCredential”的方法
问题描述
我有一个 PowerShell 脚本,可以加密密码并将其存储在 XML 文件中——运行良好。另一个脚本导入该 XML 并解密要传递给另一个进程的密码。此脚本在一台服务器(服务器 1)上运行良好,但在另一台服务器(服务器 2)上失败。
我正在运行的两台服务器都是 Windows Server 2016 并运行 PowerShell 版本 5.1.14393.3053 - 但脚本在服务器 2 上失败,但在服务器 1 上失败。我使用另一个管理员用户尝试了该过程,但遇到了同样的错误。
这是我的脚本的样子:
encryptor.ps1(生成 xml):
$cred = Get-Credential
$cred | Export-CliXml -Path 'D:\cred.xml'
decryptor.ps1(这是失败的脚本):
$credential = Import-CliXml -Path 'D:\cred.xml'
$PGUser=$credential.UserName
$PGPwd=$credential.GetNetworkCredential().Password #This causes error shown below
在两台服务器上,运行 encryptor.ps1 工作正常,但运行 decryptor.ps1 在服务器 2 上存在问题。
在服务器 1 上,decryptor.ps1 运行良好,我可以访问该变量$PGPwd
在服务器 2 上,运行 decryptor.ps1 时,我看到此错误:
Method invocation failed because [Deserialized.System.Management.Automation.PSCredential] does not contain a method named 'GetNetworkCredential'.
At D:\infa_shared\DGDR\RunDump.ps1:3 char:1
+ $PGPwd=$credential.GetNetworkCredential().Password
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (GetNetworkCredential:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
解决方案
推荐阅读
- vue.js - 如何使用 v-model 绑定解码 HTML 实体‽
- python-3.x - 如何使用 Popen 和管道从 Python 运行 C 程序,以便例如 scanf() 等待管道上的输入?
- python - Python - for-loop 存储要发送到函数的值的理想方法
- ios - Apple 更改了 Metal 中允许的矢量格式
- c++ - 如何隐藏 Boost 侵入式列表挂钩?
- ios - UIImageView 掩码层不是来自角落,直到第一次滚动 PageViewController
- python-asyncio - 如何在 asyncio3.7 中向主协程添加多个任务?
- json - 在字符串前一行打印时间戳函数的结果
- angular - Ionic 4 beta 18 - 带有 routerLink 的 ion-item 和 ion-button 不会改变路由
- php - 多个 FPDF 通过 PHP 中的邮件