Get-Credential

會根據使用者名稱和密碼取得憑證物件。

語法

CredentialSet (預設值)

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

MessageSet

Get-Credential
    [[-UserName] <String>]
    [-Message <String>]
    [-Title <String>]
    [<CommonParameters>]

Description

指令 Get-Credential 長會為指定的使用者名稱和密碼建立一個憑證物件。 你可以在安全操作中使用憑證物件。

指令 Get-Credential 長會提示使用者輸入密碼或使用者名稱與密碼。 你可以使用 Message 參數來指定一個自訂的提示訊息。

在 Windows PowerShell 5.1 及更早版本中,Windows 會呈現一個對話框,提示使用者名稱和密碼。 在 PowerShell 6.0 及以後版本中,所有平台的提示都會在主控台中呈現。

範例

範例 1

$c = Get-Credential

這個指令會取得一個憑證物件,並將其儲存在變數中 $c 。

輸入指令時,系統會提示你輸入使用者名稱和密碼。 當你輸入所需資訊時,指令小程式會建立一個 PSCredential 物件,代表使用者的憑證,並將其儲存在變數中 $c 。

你可以將這個物件作為輸入,輸入請求使用者驗證的指令檔,例如帶有 憑證 參數的指令。 然而,有些安裝 PowerShell 的提供者並不支援 憑證 參數。

範例 2

$c = Get-Credential -Credential User01
$c.Username
User01

此範例建立包含使用者名稱但不含網域名稱的憑證。

第一個指令會取得一個使用者名稱為 User01 的憑證,並將其儲存在變數中 $c 。 第二個指令顯示產生憑證物件的 Username 屬性值。

範例 3

$Credential = $Host.UI.PromptForCredential(
    "Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

此指令使用 PromptForCredential 方法來提示使用者輸入使用者名稱與密碼。 指令會將產生的憑證儲存在變數中 $Credential 。

PromptForCredential 方法是使用 Get-Credential cmdlet 的替代方案。 使用 PromptForCredential 時,你可以指定提示中出現的標題、訊息和使用者名稱。

欲了解更多資訊,請參閱 SDK 中的 PromptForCredential 文件。

範例 4

此範例示範如何建立與 回 Get-Credential傳相同的憑證物件。

$User = "Domain01\User01"
$PWord = Read-Host -Prompt 'Enter a Password' -AsSecureString
$credentialParams = @{
    TypeName = 'System.Management.Automation.PSCredential'
    ArgumentList = $User, $PWord
}
$Credential = New-Object @credentialParams

第一個指令將使用者名稱指派給變 $User 數。 確保該值符合「Domain\User」或「ComputerName\User」格式。

第二個指令使用 Read-Host cmdlet 從使用者輸入建立一個安全字串。 Prompt 參數請求使用者輸入,而 AsSecureString 參數則遮蔽輸入並將其轉換為安全字串。

第三個指令使用 New-Object cmdlet 從 and 變數中儲存$User的值建立 $PWord 物件。

範例 5

$credentialParams = @{
    Message = "Credential are required for access to the \\Server1\Scripts file share."
    UserName = "Server01\PowerUser"
}
Get-Credential @credentialParams
PowerShell Credential Request
Credential are required for access to the \\Server1\Scripts file share.
Password for user Server01\PowerUser:

此指令使用 cmdlet 的 Message 與 Get-Credential 參數。 此指令格式設計用於共享腳本與函式。 在這種情況下,訊息告訴使用者為何需要憑證,並讓他們有信心該請求是合法的。

範例 6

Invoke-Command -ComputerName Server01 -ScriptBlock {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 。

Note

如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。

參數屬性

類型:PSCredential
預設值:None
支援萬用字元:False
不要顯示:False

參數集

CredentialSet
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Message

指定一個訊息會出現在驗證提示中。 此參數設計用於函式或腳本。 你可以用訊息向使用者說明你為何要求憑證,以及憑證將如何使用。

此參數是在 PowerShell 3.0 中引進的。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

MessageSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Title

設定主控台中認證提示的標題行文字。

此參數是在 PowerShell 6.0 中引進的。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

MessageSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UserName

指定使用者名稱。 驗證提示會要求使用者名稱輸入密碼。 預設情況下,使用者名稱為空白,認證提示程式同時要求輸入使用者名稱與密碼。

此參數是在 PowerShell 3.0 中引進的。

參數屬性

類型:String
預設值:None (blank)
支援萬用字元:False
不要顯示:False

參數集

MessageSet
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

PSCredential

此 cmdlet 會回傳一個憑證物件。

備註

你可以使用 PSCredential 物件,在 Get-Credential cmdlets 中建立請求使用者驗證的物件,例如帶有 憑證 參數的。

憑證 參數並非 所有安裝 PowerShell 的提供者都支援。 從 PowerShell 3.0 開始,支援部分 cmdlet 如 和 Get-ContentNew-PSDrive cmdlet。