PSCredential不包含名为“ GetNetworkCredential”的方法

时间:2019-10-03 15:14:37

标签: .net windows powershell

我有一个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都可以正常工作,但是在服务器2上运行decryptor.ps1会出现问题。

在服务器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

0 个答案:

没有答案