Read-Host
- это простая опция для получения ввода строки от пользователя.
$name = Read-Host 'What is your username?'
Чтобы скрыть пароли, вы можете использовать:
$pass = Read-Host 'What is your password?' -AsSecureString
Чтобы преобразовать пароль в обычный текст:
[Runtime.InteropServices.Marshal]::PtrToStringAuto(
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))
Что касается типа, возвращаемого $host.UI.Prompt()
, если вы запустите код по ссылке, размещенной в комментарии @ Christian, вы можете узнать тип возвращаемого значения, указав в нем Get-Member
(например, $results | gm
). В результате получается словарь, в котором ключом является имя FieldDescription
объекта, используемого в приглашении. Чтобы получить доступ к результату для первой подсказки в связанном примере, введите: $results['String Field']
.
Чтобы получить доступ к информации без вызова метода, оставьте скобки выключенными:
PS> $Host.UI.Prompt
MemberType : Method
OverloadDefinitions : {System.Collections.Generic.Dictionary[string,psobject] Pr
ompt(string caption, string message, System.Collections.Ob
jectModel.Collection[System.Management.Automation.Host.Fie
ldDescription] descriptions)}
TypeNameOfValue : System.Management.Automation.PSMethod
Value : System.Collections.Generic.Dictionary[string,psobject] Pro
mpt(string caption, string message, System.Collections.Obj
ectModel.Collection[System.Management.Automation.Host.Fiel
dDescription] descriptions)
Name : Prompt
IsInstance : True
$Host.UI.Prompt.OverloadDefinitions
даст вам определение (я) метода. Каждое определение отображается как <Return Type> <Method Name>(<Parameters>)
.