Get-Credential
依據使用者名稱與密碼取得認證物件。
Syntax
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
Description
Cmdlet Get-Credential
會為指定的使用者名稱和密碼建立認證物件。 您可以在安全性作業中使用認證物件。
Cmdlet Get-Credential
會提示使用者輸入密碼或使用者名稱和密碼。 您可以使用 Message 參數,在命令行提示字元中指定自訂訊息。
範例
範例 1
$c = Get-Credential
此命令會取得認證物件,並將它儲存在變數中 $c
。
當您輸入命令時,系統會提示您輸入使用者名稱和密碼。 當您輸入要求的資訊時,Cmdlet 會建立 PSCredential 物件,代表使用者的認證,並將它儲存在 變數中 $c
。
您可以使用該物件做為要求使用者驗證的 Cmdlet 輸入,例如那些包含 Credential 參數的 Cmdlet。 不過,某些與 PowerShell 一起安裝的提供者不支援 Credential 參數。
範例 2
$c = Get-Credential
Get-CimInstance Win32_DiskDrive -ComputerName Server01 -Credential $c
這些命令會使用 Cmdlet 傳回的認證對象 Get-Credential
來驗證遠端電腦上的使用者,讓他們可以使用 Windows Management Instrumentation (WMI) 來管理計算機。
第一個命令會取得認證物件,並將它儲存在變數中 $c
。 第二個 Get-CimInstance
命令會使用命令中的認證物件。 此命令取得 Server01 電腦上磁碟機的相關資訊。
範例 3
Get-CimInstance Win32_BIOS -ComputerName Server01 -Credential (Get-Credential -Credential Domain01\User01)
此命令示範如何在 Get-Credential
命令中包含 Get-CimInstance
命令。
此命令會 Get-CimInstance
使用 Cmdlet 取得 Server01 電腦上的 BIOS 相關信息。 它會使用 Credential 參數來驗證使用者、Domain01\User01 和 Get-Credential
命令作為 Credential 參數的值。
範例 4
$c = Get-Credential -credential User01
$c.Username
User01
此範例建立的認證包含沒有網域名稱的使用者名稱。
第一個命令會取得使用者名稱為User01的認證,並將它儲存在變數中 $c
。
第二個命令顯示產生之認證物件的 Username 屬性值。
範例 5
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
此命令使用 PromptForCredential 方法提示使用者輸入使用者名稱和密碼。 命令會將產生的認證儲存在變數中 $Credential
。
PromptForCredential 方法是使用 Cmdlet 的Get-Credential
替代方法。 當您使用 PromptForCredential 時,可以指定提示中顯示的 標題、訊息和用戶名稱。
如需詳細資訊,請參閱 SDK 中的 PromptForCredential 檔。
範例 6
這個範例示範如何建立與傳回物件相同的認證物件, Get-Credential
而不提示使用者。 此方法需要純文字密碼,這可能會違反某些企業的安全性標準。
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
第一個命令會將用戶帳戶名稱儲存在 參數中 $User
。 該值必須具有 "Domain\User" 或 "ComputerName\User" 格式。
第二個命令會 ConvertTo-SecureString
使用 Cmdlet,從純文本密碼建立安全字串。 命令使用 AsPlainText 參數指示字串為純文字,並使用 Force 參數確認您了解使用純文字的風險。
第三個命令會New-Object
使用 Cmdlet,從和 $PWord
變數中的$User
值建立 PSCredential 物件。
範例 7
Get-Credential -Message "Credential are required for access to the \\Server1\Scripts file share." -User Server01\PowerUser
PowerShell Credential Request
Credential are required for access to the \\Server1\Scripts file share.
Password for user Server01\PowerUser:
此命令會使用 Cmdlet 的 Get-Credential
Message 和 UserName 參數。 此命令的格式是為共用的指令碼和函式而設計。 在本例中,訊息會告知使用者為什麼需要認證,並讓使用者相信此為合法要求。
範例 8
Invoke-Command -ComputerName Server01 {Get-Credential Domain01\User02}
PowerShell Credential Request : PowerShell Credential Request
Warning: This credential is being requested by a script or application on the SERVER01 remote computer. Enter your credentials only if you
trust the remote computer and the application or script requesting it.
Enter your credentials.
Password for user Domain01\User02: ***************
PSComputerName : Server01
RunspaceId : 422bdf52-9886-4ada-ab2f-130497c6777f
PSShowComputerName : True
UserName : Domain01\User01
Password : System.Security.SecureString
此命令會從 Server01 遠端電腦取得認證。 此命令會 Invoke-Command
使用 Cmdlet 在遠端電腦上執行 Get-Credential
命令。 輸出會顯示包含在驗證提示中的遠端安全性訊息 Get-Credential
。
參數
-Credential
指定認證的用戶名稱,例如 User01 或 Domain01\User01。 參數名稱 -Credential
是選擇性的。
當您提交命令並指定使用者名稱時,系統會提示您輸入密碼。 如果您省略此參數,系統會提示您輸入使用者名稱和密碼。
從 PowerShell 3.0 開始,如果您輸入不含網域的使用者名稱, Get-Credential
就不會再於名稱前面插入反斜杠。
認證會儲存在 PSCredential 物件中,密碼會儲存為 SecureString。
注意
如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
指定顯示在驗證提示中的訊息。 此參數是針對在函式或指令碼中使用而設計。 您可以使用該訊息向使用者說明為何要求認證,以及認證的用途。
此參數是在 PowerShell 3.0 中引進。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
在控制台中設定驗證提示的標題列文字。
此參數是在 PowerShell 6.0 中引進。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
指定使用者名稱。 驗證提示要求使用者名稱的密碼。 根據預設,使用者名稱是空白的,且驗證提示會要求使用者名稱和密碼。
此參數是在 PowerShell 3.0 中引進。
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
None
您無法使用管線傳送輸入至此 Cmdlet。
輸出
Get-Credential
會傳回認證物件。
備註
您可以使用在要求使用者驗證的 Cmdlet 中建立的 PSCredential 物件 Get-Credential
,例如具有 Credential 參數的 Cmdlet 。
所有與 PowerShell 一起安裝的提供者都不支援 Credential 參數。
從 PowerShell 3.0 開始,在選取的 Cmdlet 上支援它,例如 Get-Content
和 New-PSDrive
Cmdlet。