У меня есть функция в модуле Powershell, которая должна установить сеанс базы данных с SimplySql. SimplySql принимает объект учетных данных. Теперь у меня есть несколько проблем, чтобы отправить пароль в функцию. Что я пробовал:
При использовании параметра $ password [строка] я получаю предупреждение
"Parameter '$password' should use SecureString, otherwise this will expose sensitive information"
. Имеет смысл, поэтому я изменил параметр на securestring.Я создал защищенную строку с помощью
"$SecurePassword = "myPassword" | ConvertTo-SecureString -AsPlainText -Force"
, снова импортировал модуль и вызвал функцию. Теперь я получаю следующее сообщение:Cannot process argument transformation on parameter 'Password'. Cannot convert the "System.Security.SecureString" value of type "System.String" to type "System.Security.SecureString"
. Я проверил SecureString с помощью$myLocalSecString.GetType()
, и да, это Secure String.Поскольку я не нашел для этого никакого решения, я попытался установить
[PSCredential]$cred
в качестве объекта ввода. Я создал объект с помощью[pscredential]$_credObject = New-Object System.Management.Automation.PSCredential ("myusername", $SecurePassword)
. Когда я вызываю функцию сейчас, я получаю следующее сообщение:
PowerShell credential request Enter your credentials. Password for user System.Management.Automation.PSCredential:
Я думаю, что в сценариях 2 и 3 я неправильно создал SecureString, но я не понял, что делаю неправильно. Скрипт должен работать на Powershell Core.
Было бы здорово получить здесь хорошую подсказку.
заранее спасибо
Дэйв
[pscredential]
, то лучшее, что вы можете сделать, - это принять и его и передать его модулю как есть, никогда не касайтесь пароля в виде открытого текста. - person Mathias R. Jessen   schedule 14.05.2021