使用 Read-Host PowerShell cmdlet,您可以与脚本用户交互式地请求输入。让我们看一些在实际应用中如何使用 Read-Host
PowerShell cmdlet 的例子。
使用 Read-Host 进行输入提示
Read-Host
cmdlet 在 PowerShell 脚本中执行两个功能;它暂停执行并接收输入。就是这样。Read-Host
是一个简单的 cmdlet,但在需要从脚本用户那里获取信息时非常有用。
在其最基本的形式中,Read-Host
cmdlet 只需要使用 Prompt
参数。此 Prompt
参数允许您向脚本用户提供某种指示,以指导输入。例如,如果您的脚本需要服务器名称,您可能选择使用 Read-Host
在运行脚本时提示用户输入。
您可以看到通过在 PowerShell 控制台内部使用 Read-Host
并使用 Prompt
参数执行,PowerShell 正在停止所有执行,并显示我的提示消息,向用户解释我们需要什么。

让我们将这个整合到一个脚本中。每当用户在提示符处输入信息时,Read-Host
将该信息返回到您的代码。您可以通过将输出分配给变量来轻松捕获此信息。也许我想要询问服务器名称,然后对该服务器名称执行某些操作。否则,我想向用户发出警告,让他们知道我确实非常需要那个服务器名称。
使用简单的 if/then 结构,我可以确保用户输入服务器名称。一旦他们这样做,我就可以捕获它并对其进行处理,否则,发送警告消息。

请求密码
你应该知道在脚本中以明文形式存储密码并不是一个好主意。同样,将密码以明文形式存储在内存中也不是一个好主意。为了解决这个问题,PowerShell 提供了一个称为安全字符串的概念,它是一个简单的字符串,经过了加密。
A secure string can any kind of sensitive information; a password is a great example. What does this have to do with Read-Host
? The Read-Host
cmdlet has an AsSecureString
parameter which allows the user to not only store the output as a secure string but also to show asterisk while typing to hide your secret from prying eyes!
假设我有一个深藏的秘密,我不希望任何人知道,但我需要将这个密码传递给某种软件。你可以看到下面的示例,在我不使用 AsSecureString
时,你就可以发现我的秘密!然而,如果我使用 AsSecureString
,我的秘密就是安全的,因为我输入的每个字符都被替换为星号,并且输出被保存为安全字符串而不是明文字符串。

要查阅 Read-Host
文档,请参阅 Microsoft 文档。