І зберегти його в файл для подальшого використання. Навіщо це потрібно? Хоча б для того, щоб не вводити пароль кожного разу руками. Я б вважав за краще файл формату CSV. І бажано зашифрувати пароль за допомогою надійного криптографічного алгоритму. Для початку збережемо своє ім'я користувача і пароль у відповідні поля екземпляра об'єкта PSCredential.
Розглянемо кілька способів введення даних:
- в діалогове вікно:
Звернемо увагу на висновок в консолі властивостей об'єкта: ім'я користувача - myname, пароль - System.Security.SecureString.
Схоже наш пароль надійно захищений.
Відправимо дані в CSV-файл на зберігання.
Виконаємо код пару раз.
Прочитаємо вміст CSV-файлу.
Схоже все в ялинку - пароль зашифрований.
Перетворимо дані, отримані з CSV-файлу, в екземпляри об'єкта PSCredential, для чого створимо об'єкти за допомогою конструктора, і спробуємо перетворити властивість Password кожного об'єкта в рядок.
Дивно, а метод ToString () є.
А тепер увага, стежте за руками.
Висновок - пароль в такому вигляді зберігати небезпечно.
"Що ж робити?", - запитаєте ви мене :).
Звернемо увагу на командлет перетворення захищеної рядки [System.Security.SecureString] в шифровану рядок [System.String] - ConvertFrom-SecureString.
Саме його ми використовували в процесі підготовки пароля до експорту в CSV-файл.
Командлет пропонує нам пару параметрів для шифрування: Key і SecureKey.
Пропоную використовувати в якості ключа масив байт, що складається з 16, 24 або 32 (за замовчуванням) елементів - 128, 192 або 256-бітний ключ відповідно.
Запам'ятовувати всі елементи масиву - клопітно.
Спростимо: напишемо функцію, яка буде отримувати 4 цифри (як пін-код - так-сяк запам'ятати можна) і повертати масив байт заданої довжини.
Нескладний алгоритм вийшов, тут можна (навіть потрібно) наваять свій власний - наскільки фантазія дозволяє.
Тестуємо функцію.
Пишемо новий скрипт: перед експортом даних в CSV-файл шифруємо пароль алгоритмом AES. після чого через пару секунд намагаємося його прочитати.
Схоже вдало.
Змінимо наш "пін-код" і виконаємо скрипт ще раз.
Очевидно: пароль, зашифрований в перший раз (іншим ключем) нам отримати не вдалося.
Повернемо первісне значення "пін-коду" і, щоб остаточно переконатися в тому, що все працює як задумано, виконаємо скрипт втретє.
Результат - перший і третій пароль, на другому - помилка, що і було потрібно.
За сім прощаюсь. Всім мир.
p.s. На мій погляд рішення практично будь-якої задачі, в тому числі злому криптографічного алгоритму - питання часу і бюджету.