Get-Credential

获取基于用户名和密码的凭据对象。

语法

Get-Credential [-Credential] <PSCredential> [<CommonParameters>]

说明

Get-Credential cmdlet 为指定的用户名和密码创建凭据对象。您可以在安全操作中使用凭据对象。

该 cmdlet 将提示用户输入密码或者提示用户名和密码均需要输入。用户会在对话框或命令行中收到提示,具体取决于系统注册表设置。

参数

-Credential <PSCredential>

指定凭据的用户名,例如“User01”或“Domain01\User01”。参数名(“Credential”)为可选项。

提交该命令后,系统将提示您输入密码。

如果您输入不带域的用户名,Get-Credential 会在名称前插入一个反斜杠。

如果省略此参数,则将提示您输入用户名和密码。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

不能通过管道将输入传递给此 cmdlet。

输出

System.Management.Automation.PSCredential

Get-Credential 返回凭据对象。

说明

可以在请求用户身份验证的 cmdlet 中使用 Get-Credential 创建的 PSCredential 对象,例如那些具有 Credential 参数的 cmdlet。

随 Windows PowerShell 安装的提供程序不支持 Credential 参数。但可以对 Get-WmiObject 使用 Credential 参数,因为该命令会直接调用 Microsoft .NET Framework。

示例 1

C:\PS>$c = Get-Credential

说明
-----------
此命令获取凭据对象并将其保存在 $c 变量中。

在输入该命令后,将显示一个对话框,要求输入用户名和密码。在输入要求的信息后,cmdlet 将创建表示用户凭据的 PSCredential 对象并将其保存在 $c 变量中。

可以将该对象用作请求用户身份验证的 cmdlet 的输入,例如那些具有 Credential 参数的 cmdlet。但是,随 Windows PowerShell 一起安装的提供程序不支持 Credential 参数。





示例 2

C:\PS>$c = Get-Credential

C:\PS>Get-WmiObject Win32_DiskDrive -ComputerName Server01 -Credential $c

说明
-----------
这些命令使用 Get-Credential 生成的凭据对象对远程计算机上的用户进行身份验证,以便于这些用户使用 Windows Management Instrumentation (WMI) 来管理计算机。

第一个命令获取凭据对象并将其保存在 $c 变量中。第二个命令在 Get-WmiObject 命令中使用该凭据对象。此命令获取 Server01 计算机中的磁盘驱动器的有关信息。





示例 3

C:\PS>C:\PS>Get-WmiObject Win32_BIOS -ComputerName Server01 '
-Credential (get-credential Domain01\User01)

说明
-----------
此命令显示如何在 Get-WmiObject 命令中包括 Get-Credential 命令。

此命令使用 Get-WmiObject cmdlet 来获取 Server01 计算机中的 BIOS 的有关信息。它使用 Credential 参数对用户 (Domain01\User01) 进行身份验证,并将 Get-Credential 命令作为 Credential 参数的值。





示例 4

C:\PS>$c = Get-Credential -credential User01

C:\PS>$c.Username

\User01

说明
-----------
此示例将创建包含用户名(不带域名)的凭据。它证实了 Get-Credential 会在用户名前插入一个反斜杠。

第一个命令会获取带用户名 User01 的凭据,并将其存储到 $c 变量中。

第二个命令会显示所生成的凭据对象的 Username 属性值。





示例 5

C:\PS>$credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

说明
-----------
此命令使用 PromptForCredential 方法提示用户输入用户名和密码。此命令将生成的凭据保存在 $credential 变量中。

PromptForCredential 是 Get-Credential 的替代方法。使用 PromptForCredential 时,可以指定显示在消息框中的标题、消息和用户名。





示例 6

C:\PS>Set-ItemProperty 'HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds' ConsolePrompting $true

说明
-----------
需要用户名和密码时,默认情况下会出现一个对话框,提示用户输入这些信息。要在命令行显示提示,请以管理员身份在 Windows PowerShell 中运行此命令,以修改注册表。

使用具有“ConsolePrompting $false”设置的同一命令将在对话框中显示提示。