在 PowerShell 中创建输入框

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell 中的 Read-Host 命令简介
  2. 在 PowerShell 中使用安全字符串参数
  3. 在 PowerShell 中使用 Visual Basic 库
在 PowerShell 中创建输入框

在 PowerShell 中,脚本可以通过使用 Read-Host 命令提示用户来检索用户的输入。它的作用类似于 stdin 命令,从命令行读取用户提供的信息。

由于用户的输入也可以存储为安全字符串,因此也可以使用此 cmdlet 提示密码。

在常规 PowerShell 或 ISE 中,在提示符末尾显示一个冒号,请求在更 GUI 增强的 ISE 中输入。此外,还会显示一个弹出窗口以及几个按钮。

本文将解释使用提示符在 PowerShell 中获取用户输入以及如何使用 PowerShell GUI 生成输入框。

PowerShell 中的 Read-Host 命令简介

Read-Host 命令是最基本的 PowerShell 本机命令,我们可以使用它来请求用户输入。

示例代码:

Read-Host

基本语法:

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

Read-Host 命令有三个我们可以使用的参数。

-AsSecureString - 这个参数表示用户输入的输入被*隐藏。使用此参数时,输出为特定的字符串对象。

  1. 参数值的数据类型为 Switch
  2. 参数的默认值为 NULL
  3. 不接受通配符。

-MaskInput - 此参数类似于功能中的安全字符串参数,不同之处在于输出是字符串,而不是安全字符串。

  1. 参数值的数据类型为 Switch
  2. 参数的默认值为 NULL
  3. 不接受通配符。

-Prompt - 此参数表示要显示给用户的脚本提示文本。该参数值需要是一个字符串。

在空格的情况下,它们应该用引号括起来。

  1. 参数的数据类型是 PSObject
  2. 参数的默认值为 NULL
  3. 不接受通配符。

在 PowerShell 中使用安全字符串参数

执行 Read-Host 命令时,其正常行为将要求用户在命令行上输入。但是,使用 AsSecureString 参数是生成要求用户输入的简单 GUI 的最简单方法之一。

为此,请运行以下代码片段。

$UserName = Read-Host 'Enter Your User Name:' -AsSecureString

输出:

安全字符串提示输出

唯一的缺点是输入像密码一样被屏蔽。如果我们要求输入用户的密码,这种方法是完美的。

但是,如果我们要求一些可以以纯文本形式显示的内容,比如用户名或员工 ID,该怎么办。

如果我们想要自定义不需要 AsSecureString 参数的输入框和字段怎么办。我们将在本文的下一节中讨论实现此过程的方法。

在 PowerShell 中使用 Visual Basic 库

使用 GUI 界面请求用户输入的最新方法之一是使用 Add-Type cmdlet 加载 Microsoft Visual Basic Interaction 类。

示例代码:

Add-Type -AssemblyName Microsoft.VisualBasic
$User = [Microsoft.VisualBasic.Interaction]::InputBox('Username:', 'User', "Enter username here")

正如我们在上面的代码片段中看到的,InputBox 函数接受三个参数。

  1. 第一个参数是文本字段的标签或名称。
  2. 第二个参数是变量的名称,我们将在其中存储提供的用户输入的值。
  3. 第三个参数是文本字段的默认值。

输出:

Visual Basic 类提示输出

一旦用户用用户输入填写文本框并按下 OK 按钮,$User 变量将包含文本框中的值。

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell Input