Get-Credential
ユーザー名とパスワードに基づいて資格情報オブジェクトを取得します。
構文
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
説明
コマンドレットは Get-Credential
、指定したユーザー名とパスワードの資格情報オブジェクトを作成します。 作成した資格情報オブジェクトは、セキュリティ操作で使用できます。
コマンドレットは Get-Credential
、ユーザーにパスワードまたはユーザー名とパスワードの入力を求めます。 Message パラメーターを使用して、プロンプトのカスタマイズされたメッセージを指定できます。
Windows PowerShell 5.1 以前では、ユーザー名とパスワードの入力を求めるダイアログ ボックスが表示されます。 PowerShell 6.0 以降では、すべてのプラットフォームのコンソールにプロンプトが表示されます。
例
例 1
$c = Get-Credential
このコマンドは、資格情報オブジェクトを取得し、 変数に $c
保存します。
コマンドを入力すると、ユーザー名とパスワードの入力を求められます。 要求された情報を入力すると、コマンドレットはユーザーの資格情報を表す PSCredential オブジェクトを作成し、変数に $c
保存します。
このオブジェクトは、Credential パラメーターを持つコマンドレットなど、ユーザー認証を必要とするコマンドレットへの入力として使用できます。 ただし、PowerShell と共にインストールされている一部のプロバイダーでは 、Credential パラメーターがサポートされていません。
例 2
$c = Get-Credential -credential User01
$c.Username
User01
この例では、ドメイン名なしのユーザー名を含む資格情報を作成しています。
最初のコマンドは、ユーザー名 User01 の資格情報を取得し、変数に $c
格納します。
2 番目のコマンドは、結果として得られる資格情報オブジェクトの Username プロパティの値を表示します。
例 3
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
このコマンドは、 PromptForCredential メソッドを使用して、ユーザーにユーザー名とパスワードを入力するよう求めます。 コマンドは、結果の資格情報を 変数に $Credential
保存します。
PromptForCredential メソッドは、 コマンドレットを使用する代わりに使用しますGet-Credential
。 PromptForCredential を使用する場合は、プロンプトに表示されるキャプション、メッセージ、およびユーザー名を指定できます。
詳細については、SDK の PromptForCredential ドキュメントを参照してください。
例 4
この例では、ユーザーにメッセージを表示せずに を返すオブジェクトと同じ資格情報オブジェクト 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" の形式である必要があります。
2 番目のコマンドでは、 コマンドレットを ConvertTo-SecureString
使用して、プレーン テキスト パスワードからセキュリティで保護された文字列を作成します。 このコマンドは、AsPlainText パラメーターを使用して、文字列がプレーンテキストであることを示します。また、Force パラメーターを使用して、プレーンテキストの使用に伴うリスクを理解しているかどうかを確認します。
3 番目のコマンドでは、 コマンドレットをNew-Object
使用して、 変数と $PWord
変数の値から PSCredential オブジェクトを$User
作成します。
例 5
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:
このコマンドでは、 コマンドレットの Message パラメーターと UserName パラメーターを Get-Credential
使用します。 このコマンド形式は、共有スクリプトおよび共有関数向けに設計されています。 この例では、メッセージはユーザーに、資格情報が必要な理由を伝え、要求が正当であるという安心感を与えています。
例 6
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
使用してリモート コンピューターでコマンドを実行 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
オブジェクトをこのコマンドレットにパイプすることはできません。
出力
このコマンドレットは、資格情報オブジェクトを返します。
メモ
Credential パラメーターを持つコマンドレットなど、ユーザー認証を要求するコマンドレットで作成する PSCredential オブジェクトGet-Credential
を使用できます。
Credential パラメーターは、PowerShell と共にインストールされているすべてのプロバイダーでサポートされているわけではありません。
PowerShell 3.0 以降では、 コマンドレットや New-PSDrive
コマンドレットなどのGet-Content
一部のコマンドレットでサポートされています。