Я хочу, чтобы иметь возможность входа в VIServers с помощью PowerShell и попросить учетные данные при первом запуске скрипта, а затем сохранить эти учетные данные в файле password.txt и заставить VIServer использовать этот файл password.txt, хранящийся локально на компьютере пользователя, если пользователь снова запускает сценарий. Больной момент заключается в том, что подсказка учетных данных продолжает появляться снова и снова, когда пользователь хочет запустить скрипт несколько раз.Для VIServer и PowerCLI, как запрашивать учетные данные только в первый раз в PowerShell, затем хранить учетные данные и использовать их для запуска следующего сценария?
Я могу использовать следующий код из другого ответа размещен здесь на Stackoverflow (Ссылка: http://www.adminarsenal.com/admin-arsenal-blog/secure-password-with-powershell-encrypting-credentials-part-1)
и она работает:
Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString |
Out-File "G:\dev\Password.txt"
$pass = Get-Content "G:\dev\Password.txt" | ConvertTo-SecureString
$User = "MyUserName"
$File = "G:\dev\Password.txt"
$MyCredential = New-Object -TypeName System.Management.Automation.PSCredential
-ArgumentList $User, (Get-Content $File | ConvertTo-SecureString)
я нашел следующее из VMWare блога (ссылка: http://blogs.vmware.com/PowerCLI/2011/11/have-you-seen-powerclis-credential-store-feature.html)
А вот код из VMWare блога (с некоторыми пояснениями):
Для использования учетных данных магазин, я следующее:
New-VICredentialStoreItem -Host 192.168.10.10 -User "Andrey" -Password "my favorite password"
Теперь я могу ввести только:
Connect-VIServer 192.168.10.10
Когда я не указываю пользователя и/или пароль, Connect-VIServer проверяет удостоверении магазин, находит мой вновь хранит учетные данные и использует его.
По умолчанию файл хранилища учетных данных хранится в каталоге профиля пользователя. Он зашифрован. Если вам интересно, проверьте «help» VICredentialStoreItem ».
-Andrey Анастасов, PowerCLI архитектор
============= И ТЕПЕРЬ МОЯ ОБНОВЛЕНО версия кода VIServer ========== $ Hostname = 192.168.10.10
New-VICredentialStoreItem -Host $Hostname -User $User -Password $pass
Есть ли я на правильном пути?
Что нужно сделать, чтобы ввести учетные данные только 1 раз, а затем просто вызвать вызов сценария $ creds вместо того, чтобы вводить учетные данные каждый раз?
Вы можете решить, чтобы проверить, есть ли результат в 'Get-VICredentialStoreItem' с вашим именем пользователя, если нет ни одного, получить учетные данные из' Read-Host' и сохранить там, иначе пропустите. ("Get-VICredentialStoreItem" должен быть там, в связи с Powershell именования для функций управления типа) – Vesper