Скрипту Powershell не удается найти тип System .Безопасность.Криптография.RijndaelManagedTransform

#powershell #encryption #.net-framework-version

#powershell #шифрование #.net-framework-version

Вопрос:

У меня есть сценарий Powershell, в котором я использую модуль System.Security.Cryptography.RijndaelManagedTransform . Раньше я выполнял свой скрипт с Powershell 5.1, и все работало нормально. Мне нужны некоторые функции из Powershell 7, и поэтому я сейчас выполняю скрипт с Powershell 7. Однако в моем скрипте я получаю сообщение об ошибке.

Ошибка указывает на следующую строку в New-StringDecryption:

 [System.Security.Cryptography.RijndaelManagedTransform]$objectDecryptor = $encryptionObject.CreateDecryptor()
  

Ошибка гласит:

Не удается найти тип [System.Безопасность.Криптография.RijndaelManagedTransform]

Мне кажется, что Powershell не может найти модуль. Однако почему это сработало при запуске скрипта с Powershell 5.1?

Я уже пытался добавить эти строки в скрипт, но это не помогло:

 Add-Type -AssemblyName System.Security
Add-Type -AssemblyName System.Core
  

Комментарии:

1. Некоторые API-интерфейсы шифрования были слегка переработаны во время переноса на .NET Core, и RijndaelManagedTransform тип больше не существует. RijndaelManaged.CreateDecryptor() по-прежнему возвращает an ICryptoTransform , вы пробовали просто удалить приведение? Если это не помогло, пожалуйста, опубликуйте полный пример кода вместе с любыми другими ошибками, с которыми вы можете столкнуться

2. Спасибо, удаление приведения типов сделало свое дело!