Read-Host

从控制台读取一行输入。

语法

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

说明

cmdlet Read-Host 从控制台 (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 显示星号 (*) 代替用户键入为输入的字符。 使用此参数时,cmdlet 的Read-Host输出是 System.Security.SecureString) (SecureString 对象。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaskInput

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

此参数已在 PowerShell 7.1 中添加。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prompt

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

Type:Object
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

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

输出

System.String or System.Security.SecureString

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

备注

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