PSCredential не содержит метод с именем «GetNetworkCredential» - PullRequest
0 голосов
/ 03 октября 2019

У меня есть сценарий 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...