І зберегти його в файл для подальшого використання. Навіщо це потрібно? Хоча б для того, щоб не вводити пароль кожного разу руками. Я б вважав за краще файл формату CSV. І бажано зашифрувати пароль за допомогою надійного криптографічного алгоритму. Для початку збережемо своє ім'я користувача і пароль у відповідні поля екземпляра об'єкта PSCredential.
Розглянемо кілька способів введення даних:
- в діалогове вікно:
![Анатолій Демидович як отримати пароль з pscredential (pscredential) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-52e12733.png)
![Анатолій Демидович як отримати пароль з pscredential (отримати) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-cc614e2f.png)
![Анатолій Демидович як отримати пароль з pscredential (отримати) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-540c49c5.png)
![Анатолій Демидович як отримати пароль з pscredential (отримати) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-13008866.png)
![Анатолій Демидович як отримати пароль з pscredential (System Security SecureString) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-26525a36.png)
Звернемо увагу на висновок в консолі властивостей об'єкта: ім'я користувача - myname, пароль - System.Security.SecureString.
Схоже наш пароль надійно захищений.
Відправимо дані в CSV-файл на зберігання.
Виконаємо код пару раз.
![Анатолій Демидович як отримати пароль з pscredential (System Security SecureString) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-d42ccdf3.png)
Прочитаємо вміст CSV-файлу.
![Анатолій Демидович як отримати пароль з pscredential (отримати) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-d94c9318.png)
Схоже все в ялинку - пароль зашифрований.
Перетворимо дані, отримані з CSV-файлу, в екземпляри об'єкта PSCredential, для чого створимо об'єкти за допомогою конструктора, і спробуємо перетворити властивість Password кожного об'єкта в рядок.
![Анатолій Демидович як отримати пароль з pscredential (пароль) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-cff06eaf.png)
Дивно, а метод ToString () є.
![Анатолій Демидович як отримати пароль з pscredential (System Security SecureString) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-5119baac.png)
А тепер увага, стежте за руками.
![Анатолій Демидович як отримати пароль з pscredential (pscredential) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-01c48ef9.png)
Висновок - пароль в такому вигляді зберігати небезпечно.
"Що ж робити?", - запитаєте ви мене :).
Звернемо увагу на командлет перетворення захищеної рядки [System.Security.SecureString] в шифровану рядок [System.String] - ConvertFrom-SecureString.
Саме його ми використовували в процесі підготовки пароля до експорту в CSV-файл.
Командлет пропонує нам пару параметрів для шифрування: Key і SecureKey.
Пропоную використовувати в якості ключа масив байт, що складається з 16, 24 або 32 (за замовчуванням) елементів - 128, 192 або 256-бітний ключ відповідно.
Запам'ятовувати всі елементи масиву - клопітно.
Спростимо: напишемо функцію, яка буде отримувати 4 цифри (як пін-код - так-сяк запам'ятати можна) і повертати масив байт заданої довжини.
Нескладний алгоритм вийшов, тут можна (навіть потрібно) наваять свій власний - наскільки фантазія дозволяє.
Тестуємо функцію.
![Анатолій Демидович як отримати пароль з pscredential (System Security SecureString) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-7b39f6c3.png)
Пишемо новий скрипт: перед експортом даних в CSV-файл шифруємо пароль алгоритмом AES. після чого через пару секунд намагаємося його прочитати.
![Анатолій Демидович як отримати пароль з pscredential (pscredential) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-b502dd9f.png)
Схоже вдало.
Змінимо наш "пін-код" і виконаємо скрипт ще раз.
![Анатолій Демидович як отримати пароль з pscredential (пароль) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-0617273a.png)
Очевидно: пароль, зашифрований в перший раз (іншим ключем) нам отримати не вдалося.
Повернемо первісне значення "пін-коду" і, щоб остаточно переконатися в тому, що все працює як задумано, виконаємо скрипт втретє.
![Анатолій Демидович як отримати пароль з pscredential (System Security SecureString) Анатолій Демидович як отримати пароль з pscredential](https://images-on-off.com/images/150/anatoliydemidovichkakpoluchitparolizpscr-5884fbb1.png)
Результат - перший і третій пароль, на другому - помилка, що і було потрібно.
За сім прощаюсь. Всім мир.
p.s. На мій погляд рішення практично будь-якої задачі, в тому числі злому криптографічного алгоритму - питання часу і бюджету.