Powershell - «Переменная Clear-Item» против «Remove-Variable»
При временном хранении текста в переменных powershell во время выполнения, каков наиболее эффективный способ удаления содержимого переменных из памяти, когда он больше не нужен?
Я использовал обаClear-Item variable:
а такжеRemove-Variable
но как быстро что-то удаляется из памяти с последним против обнуления содержимого памяти с первым?
РЕДАКТИРОВАТЬ: я должен был сделать это немного яснее, почему я спрашиваю.
Я автоматизирую вход в RDP для нескольких виртуальных машин приложений (приложение не запускается как служба, сторонние разработчики, длинная история).
Итак, я разрабатываю (в основном закончил) скрипт для группировки сеансов запуска для каждой из виртуальных машин.
Идея в том, что функция скрипта, которая хранит учетные данные, используетread-host
запросить имя хостаget-credentials
подобрать домен / пользователя / пароль.
Затем проход преобразуется из защищенной строки с использованием 256-битного ключа (ключ времени выполнения, уникальный для компьютера / пользователя, который сохранил кредиты и запускает запуск группы).
Имя виртуальной машины, домен, пользователь и зашифрованный проход хранятся в файле. При запуске сеанса данные считываются, пароль расшифровывается, данные передаютсяcmdkey.exe
хранить\generic:TERMSRV
учетные данные для этой виртуальной машины, очистите переменную передачи открытого текста, запустите mstsc для этого хоста, через несколько секунд удалите учетные данные из хранилища учетных данных Windows. (Если бы я передал пароль к cmdkey.exe как что-либо кроме открытого текста, сеанс RDP либо получил бы неправильные, либо никакие учетные данные).
Итак, отсюда вопрос, мне нужен пароль в открытом тексте, чтобы существовать в памяти как можно более короткое время.
Чтобы сотрудники безопасности были довольны, сам сценарий зашифрован aes256, а оболочка c # с собственным хостом ps считывает, дешифрует и запускает сценарий, поэтому на компьютере, на котором это выполняется, нет открытого текста. (Зашифрованный источник в общей папке настолько эффективен, что у меня есть переключатель kill, можно просто заменить зашифрованный скрипт другим, отображающим сообщение о том, что это приложение отключено)