Get-Credential
Ottiene un oggetto credenziali basato su un nome utente e una password.
Sintassi
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
Descrizione
Il Get-Credential
cmdlet crea un oggetto credenziale per un nome utente e una password specificati. È possibile usare l'oggetto credenziali nelle operazioni di sicurezza.
Il Get-Credential
cmdlet richiede all'utente una password o un nome utente e una password. È possibile utilizzare il parametro Message per specificare un messaggio personalizzato per il prompt.
In Windows PowerShell 5.1 e versioni precedenti, Windows presenta una finestra di dialogo per richiedere un nome utente e una password. In PowerShell 6.0 e versioni successive il prompt viene visualizzato nella console per tutte le piattaforme.
Esempio
Esempio 1
$c = Get-Credential
Questo comando ottiene un oggetto credenziale e lo salva nella $c
variabile .
Quando si immette il comando, viene richiesto un nome utente e una password. Quando si immettono le informazioni richieste, il cmdlet crea un oggetto PSCredential che rappresenta le credenziali dell'utente e lo salva nella $c
variabile.
È possibile usare l'oggetto come input dei cmdlet che richiedono l'autenticazione utente, ad esempio quelli con un parametro Credential. Tuttavia, alcuni provider installati con PowerShell non supportano il parametro Credential .
Esempio 2
$c = Get-Credential -credential User01
$c.Username
User01
Questo esempio crea credenziali in cui è incluso un nome utente senza un nome di dominio.
Il primo comando ottiene una credenziale con il nome utente User01 e lo archivia nella $c
variabile .
Il secondo comando visualizza il valore della proprietà Username dell'oggetto credenziali risultante.
Esempio 3
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Questo comando usa il metodo PromptForCredential per richiedere all'utente il nome utente e la password. Il comando salva le credenziali risultanti nella $Credential
variabile .
Il metodo PromptForCredential è un'alternativa all'uso del Get-Credential
cmdlet . Quando si usa PromptForCredential, è possibile specificare il didascalia, i messaggi e il nome utente visualizzati nella richiesta.
Per altre informazioni, vedere la documentazione di PromptForCredential nell'SDK.
Esempio 4
In questo esempio viene illustrato come creare un oggetto credenziale identico all'oggetto che Get-Credential
restituisce senza chiedere conferma all'utente. Questo metodo richiede una password non crittografata, che potrebbe violare gli standard di sicurezza in alcune organizzazioni.
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Il primo comando salva il nome dell'account utente nel $User
parametro . Il valore deve essere nel formato "Domain\User" o "ComputerName\User".
Il secondo comando usa il ConvertTo-SecureString
cmdlet per creare una stringa protetta da una password di testo normale. Il comando usa il parametro AsPlainText per indicare che la stringa non è crittografata e il parametro Force per confermare di aver compreso i rischi che comporta l'uso di testo normale.
Il terzo comando usa il New-Object
cmdlet per creare un oggetto PSCredential dai valori nelle $User
variabili e $PWord
.
Esempio 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:
Questo comando usa i parametri Message e UserName del Get-Credential
cmdlet . Il formato di questo comando è progettato per le funzioni e gli script condivisi. In questo caso, il messaggio indica all'utente perché sono necessarie le credenziali e assicura che la richiesta è legittima.
Esempio 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
Questo comando ottiene le credenziali dal computer remoto Server01. Il comando usa il Invoke-Command
cmdlet per eseguire un Get-Credential
comando nel computer remoto. L'output mostra il messaggio di sicurezza remoto che Get-Credential
include nel prompt di autenticazione.
Parametri
-Credential
Specifica un nome utente per le credenziali, ad esempio User01 o Domain01\User01. Il nome del parametro, -Credential
, è facoltativo.
Quando si invia il comando e si specifica un nome utente, viene richiesta una password. Se si omette questo parametro, viene richiesto un nome utente e una password.
A partire da PowerShell 3.0, se si immette un nome utente senza un dominio, Get-Credential
non viene più inserita una barra rovesciata prima del nome.
Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.
Nota
Per altre informazioni sulla protezione dei dati SecureString , vedere How secure is SecureString?.For more information about SecureString data protection, see How secure is SecureString?.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
Specifica un messaggio visualizzato nella richiesta di autenticazione. Questo parametro è progettato per l'uso in una funzione o uno script. È possibile usare il messaggio per spiegare all'utente per quale motivo si richiedono le credenziali e come saranno usate.
Questo parametro è stato introdotto in PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
Imposta il testo della riga del titolo per la richiesta di autenticazione nella console.
Questo parametro è stato introdotto in PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Specifica un nome utente. La richiesta di autenticazione richiede una password per il nome utente. Per impostazione predefinita, il nome utente è vuoto e la richiesta di autenticazione richiede un nome utente e una password.
Questo parametro è stato introdotto in PowerShell 3.0.
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto credenziale.
Note
È possibile utilizzare l'oggetto PSCredential creato Get-Credential
nei cmdlet che richiedono l'autenticazione utente, ad esempio quelli con un parametro Credential .
Il parametro Credential non è supportato da tutti i provider installati con PowerShell.
A partire da PowerShell 3.0, è supportato nei cmdlet select, ad esempio i Get-Content
cmdlet e New-PSDrive
.