Udostępnij za pośrednictwem


Get-Credential

Pobiera obiekt poświadczeń na podstawie nazwy użytkownika i hasła.

Składnia

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

Opis

Polecenie Get-Credential cmdlet tworzy obiekt poświadczeń dla określonej nazwy użytkownika i hasła. Możesz użyć obiektu poświadczeń w operacjach zabezpieczeń.

Polecenie Get-Credential cmdlet monituje użytkownika o podanie hasła lub nazwy użytkownika i hasła. Możesz użyć parametru Message , aby określić dostosowany komunikat dla monitu.

W Windows PowerShell 5.1 i starszych system Windows wyświetla okno dialogowe z monitem o podanie nazwy użytkownika i hasła. W programie PowerShell 6.0 lub nowszym monit jest wyświetlany w konsoli dla wszystkich platform.

Przykłady

Przykład 1

$c = Get-Credential

To polecenie pobiera obiekt poświadczeń i zapisuje go w zmiennej $c .

Po wprowadzeniu polecenia zostanie wyświetlony monit o podanie nazwy użytkownika i hasła. Po wprowadzeniu żądanych informacji polecenie cmdlet tworzy obiekt PSCredential reprezentujący poświadczenia użytkownika i zapisuje go w zmiennej $c .

Można użyć obiektu jako danych wejściowych do poleceń cmdlet, które żądają uwierzytelniania użytkownika, takich jak te z parametrem Credential . Jednak niektórzy dostawcy instalowani za pomocą programu PowerShell nie obsługują parametru Credential .

Przykład 2

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

W tym przykładzie zostanie utworzone poświadczenie zawierające nazwę użytkownika bez nazwy domeny.

Pierwsze polecenie pobiera poświadczenia o nazwie użytkownika User01 i zapisuje je w zmiennej $c . Drugie polecenie wyświetla wartość właściwości Username wynikowego obiektu poświadczeń.

Przykład 3

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

To polecenie używa metody PromptForCredential , aby monitować użytkownika o podanie nazwy użytkownika i hasła. Polecenie zapisuje wynikowe poświadczenia w zmiennej $Credential .

Metoda PromptForCredential jest alternatywą dla użycia Get-Credential polecenia cmdlet . W przypadku korzystania z polecenia PromptForCredential można określić podpis, komunikaty i nazwę użytkownika, które są wyświetlane w wierszu polecenia.

Aby uzyskać więcej informacji, zobacz dokumentację PromptForCredential w zestawie SDK.

Przykład 4

W tym przykładzie pokazano, jak utworzyć obiekt poświadczeń, który jest identyczny z obiektem zwracanym Get-Credential bez monitowania użytkownika. Ta metoda wymaga hasła w postaci zwykłego tekstu, które może naruszać standardy zabezpieczeń w niektórych przedsiębiorstwach.

$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

Pierwsze polecenie zapisuje nazwę konta użytkownika w parametrze $User . Wartość musi mieć format "Domain\User" lub "ComputerName\User".

Drugie polecenie używa ConvertTo-SecureString polecenia cmdlet do utworzenia bezpiecznego ciągu na podstawie hasła w postaci zwykłego tekstu. Polecenie używa parametru AsPlainText , aby wskazać, że ciąg jest zwykły tekst i parametr Force , aby potwierdzić, że rozumiesz ryzyko użycia zwykłego tekstu.

Trzecie polecenie używa New-Object polecenia cmdlet do utworzenia obiektu PSCredential na podstawie wartości w $User zmiennych i $PWord .

Przykład 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:

To polecenie używa parametrów Get-CredentialMessage i UserName polecenia cmdlet. Ten format polecenia jest przeznaczony dla udostępnionych skryptów i funkcji. W takim przypadku komunikat informuje użytkownika, dlaczego potrzebne są poświadczenia, i daje im pewność, że żądanie jest uzasadnione.

Przykład 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

To polecenie pobiera poświadczenia z komputera zdalnego Server01. Polecenie używa Invoke-Command polecenia cmdlet do uruchomienia Get-Credential polecenia na komputerze zdalnym. Dane wyjściowe zawierają komunikat o zabezpieczeniach zdalnych, który Get-Credential jest zawarty w wierszu polecenia uwierzytelniania.

Parametry

-Credential

Określa nazwę użytkownika dla poświadczeń, takich jak User01 lub Domain01\User01. Nazwa -Credentialparametru , jest opcjonalna.

Po przesłaniu polecenia i określeniu nazwy użytkownika zostanie wyświetlony monit o hasło. Jeśli pominiesz ten parametr, zostanie wyświetlony monit o podanie nazwy użytkownika i hasła.

Począwszy od programu PowerShell 3.0, jeśli wprowadzisz nazwę użytkownika bez domeny, Get-Credential nie wstawi już ukośnika odwrotnego przed nazwą.

Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.

Uwaga

Aby uzyskać więcej informacji na temat ochrony danych secureString , zobacz Jak bezpieczny jest securestring?.

Type:PSCredential
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Message

Określa komunikat wyświetlany w wierszu polecenia uwierzytelniania. Ten parametr jest przeznaczony do użycia w funkcji lub skryscie. Możesz użyć komunikatu , aby wyjaśnić użytkownikowi, dlaczego żądasz poświadczeń i jak będą używane.

Ten parametr został wprowadzony w programie PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Title

Ustawia tekst wiersza tytułu dla monitu uwierzytelniania w konsoli programu .

Ten parametr został wprowadzony w programie PowerShell 6.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserName

Określa nazwę użytkownika. Monit o uwierzytelnienie żąda hasła dla nazwy użytkownika. Domyślnie nazwa użytkownika jest pusta, a monit o uwierzytelnienie żąda zarówno nazwy użytkownika, jak i hasła.

Ten parametr został wprowadzony w programie PowerShell 3.0.

Type:String
Position:1
Default value:None (blank)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

PSCredential

To polecenie cmdlet zwraca obiekt poświadczeń.

Uwagi

Można użyć obiektu PSCredential , który Get-Credential tworzy w poleceniach cmdlet, które żądają uwierzytelniania użytkownika, takich jak te z parametrem Credential .

Parametr Credential nie jest obsługiwany przez wszystkich dostawców zainstalowanych za pomocą programu PowerShell. Począwszy od programu PowerShell 3.0, jest obsługiwany w przypadku wybranych poleceń cmdlet, takich jak Get-Content polecenia cmdlet i New-PSDrive .