Read-Host

从控制台读取一行输入。

语法

AsString (默认值)

Read-Host
    [[-Prompt] <Object>]
    [-MaskInput]
    [<CommonParameters>]

AsSecureString

Read-Host
    [[-Prompt] <Object>]
    [-AsSecureString]
    [<CommonParameters>]

说明

Read-Host cmdlet 从控制台(stdin)读取一行输入。 可以使用它提示用户输入。 由于可以将输入保存为安全字符串,因此可以使用此 cmdlet 提示用户输入安全数据,例如密码。

注释

Read-Host 限制为 1022 个字符,可以接受该字符作为用户的输入。

示例

示例 1:将控制台输入保存到变量

本示例显示字符串“请输入你的年龄:”作为提示。 输入值并按下 Enter 键时,该值存储在 $Age 变量中。

$Age = Read-Host "Please enter your age"

示例 2:将控制台输入另存为安全字符串

本示例以提示显示字符串“输入密码:”。 当输入值时,星号(*)显示在主机上代替输入。 按下 Enter 键后,该值将作为 SecureString 对象存储在 $pwd_secure_string 变量中。

$pwd_secure_string = Read-Host "Enter a Password" -AsSecureString

示例 3:掩码输入和作为纯文本字符串

本示例以提示显示字符串“输入密码:”。 当输入值时,星号(*)显示在主机上代替输入。 按下 Enter 键时,该值以纯文本形式存储在 变量中的 String $pwd_string

$pwd_string = Read-Host "Enter a Password" -MaskInput

参数

-AsSecureString

指示 cmdlet 显示星号(*),以代替用户键入为输入的字符。 使用此参数时,Read-Host cmdlet 的输出是 SecureString 对象(System.Security.SecureString)。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

AsSecureString
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-MaskInput

指示 cmdlet 显示星号(*),以代替用户键入为输入的字符。 使用此参数时,Read-Host cmdlet 的输出是 String 对象。 这样就可以安全地提示输入以纯文本形式返回的密码,而不是 SecureString

此参数已在 PowerShell 7.1 中添加。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

AsString
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Prompt

指定提示的文本。 键入字符串。 如果字符串包含空格,请用引号将其括起来。 PowerShell 将冒号(:)追加到输入的文本。

参数属性

类型:Object
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:0
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

None

此 cmdlet 不接受来自 PowerShell 管道的输入。

输出

System.String or System.Security.SecureString

如果使用 AsSecureString 参数, Read-Host 则返回 SecureString。 否则,它将返回一个字符串。

备注

此 cmdlet 仅从主机进程的 stdin 流中读取。 通常,stdin 流连接到主机主机的键盘。