Set-Secret
Aggiunge un segreto a un insieme di credenziali registrato SecretManagement.
Sintassi
SecureStringParameterSet (Impostazione predefinita)
Set-Secret
[-Name] <String>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
-SecureStringSecret <SecureString>
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ObjectParameterSet
Set-Secret
[-Name] <String>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
-Secret <Object>
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
SecretInfoParameterSet
Set-Secret
[-Vault] <String>
-SecretInfo <SecretInformation>
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Importante
Il team PowerShell ha deciso che i moduli Secret sono completi in funzionalità e non saranno più sviluppati attivamente. I moduli continueranno a essere supportati per la sicurezza e la correzione di bug critici. Il repository di codice verrà archiviato.
Le ultime versioni pubblicate sono:
La natura dei segreti è cambiata radicalmente da quando è stato progettato questo progetto. Metodi di autenticazione senza password come passkey, single sign-on e sistemi di credenziali federati come Microsoft Entra ID, biometria e chiavi di sicurezza hardware sono il futuro.
Questo cmdlet aggiunge un valore segreto in base al nome a un insieme di credenziali. Quando non viene specificato alcun nome dell'insieme di credenziali, il segreto viene aggiunto all'insieme di credenziali predefinito. Se esiste un segreto con tale nome, viene sovrascritto. È possibile includere dati aggiuntivi con il segreto, se supportato dall'insieme di credenziali delle estensioni.
Il set di parametri predefinito accetta un oggetto SecureString. Se si esegue il comando senza specificare il valore del segreto, il cmdlet richiede di immettere un SecureString. Il testo della stringa non è visibile nella console.
Esempio
Esempio 1
Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString
In questo esempio viene aggiunto un segreto denominato Secret1 con un valore di testo normale di SecretValue. Poiché non è stato specificato alcun nome dell'insieme di credenziali, il segreto viene aggiunto all'insieme di credenziali predefinito dell'utente corrente.
Get-Secret mostra che il segreto è stato aggiunto.
Esempio 2
PS C:\> Set-Secret -Name Secret2 -Vault LocalStore
cmdlet Set-Secret at command pipeline position 1
Supply values for the following parameters:
SecureStringSecret: ***********
PS C:\> Get-Secret -Name Secret2
System.Security.SecureString
In questo esempio viene aggiunto un segreto denominato Secret2 all'insieme di credenziali LocalStore. Poiché non è stato specificato alcun valore segreto, il cmdlet richiede un valore SecureString. La console nasconde il valore stringa durante la digitazione.
Get-Secret mostra che il segreto è stato aggiunto.
Esempio 3
$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name TargetSecret -Secret $targetToken -Vault LocalStore -Metadata $Metadata
Get-SecretInfo -Name TargetSecret | Select-Object Name,Metadata
Name Metadata
---- --------
TargetSecret {[Expiration, 5/1/2022 12:00:00 AM]}
In questo esempio viene aggiunto un segreto denominato TargetSecret all'insieme di credenziali LocalStore con metadati che indicano la data di scadenza del segreto.
Get-SecretInfo recupera i metadati per il segreto appena creato.
Esempio 4
$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name PublishSecret -Secret $targetToken -Vault LocalStore2 -Metadata $Metadata
Set-Secret: Can't store secret PublishSecret. Vault LocalStore2 doesn't support secret metadata.
In questo esempio viene aggiunto un segreto denominato PublishSecret all'insieme di credenziali LocalStore2 con metadati aggiuntivi.
Tuttavia, l'insieme di credenziali LocalStore2 non supporta i metadati segreti e l'operazione restituisce un errore.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Metadata
Specifica un hashtable contenente coppie chiave-valore da associare al segreto nell'insieme di credenziali. L'insieme di credenziali delle estensioni specificato potrebbe non supportare i metadati dei segreti. Se l'insieme di credenziali non supporta i metadati, l'operazione non riesce e restituisce un errore. I valori di tutti i metadati nella tabella hash devono essere uno dei tipi seguenti:
- string
- int
- DateTime
I metadati non vengono archiviati in modo sicuro in un insieme di credenziali. I metadati non devono contenere informazioni riservate.
Proprietà dei parametri
| Tipo: | Hashtable |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SecureStringParameterSet
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ObjectParameterSet
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Name
Specifica il nome del segreto da aggiungere o aggiornare. I caratteri jolly (*) non sono consentiti.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SecureStringParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ObjectParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-NoClobber
Fa sì che il comando restituisca un errore se un segreto con lo stesso nome esiste già nell'insieme di credenziali. Per impostazione predefinita, questo cmdlet aggiorna il segreto con il nuovo valore, se esiste già.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Secret
Specifica il valore del segreto. L'oggetto deve essere uno dei tipi supportati:
- Byte[]
- Stringa
- SecureString
- PSCredential
- hashtable
Proprietà dei parametri
| Tipo: | Object |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ObjectParameterSet
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SecretInfo
Specifica un oggetto SecretInformation che descrive un segreto archiviato restituito da Get-SecretInfo.
In questo modo è possibile copiare i segreti da un insieme di credenziali delle estensioni a un altro.
Proprietà dei parametri
| Tipo: | Microsoft.PowerShell.SecretManagement.SecretInformation |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SecretInfoParameterSet
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SecureStringSecret
Specifica il valore del segreto come oggetto SecretString.
Proprietà dei parametri
| Tipo: | SecureString |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SecureStringParameterSet
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Vault
Specifica il nome dell'insieme di credenziali in cui aggiungere o aggiornare il segreto. I caratteri jolly (*) non sono consentiti. Per impostazione predefinita, il segreto viene aggiunto o aggiornato nell'insieme di credenziali predefinito dell'utente corrente.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SecureStringParameterSet
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ObjectParameterSet
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
Hashtable
Output
None
Note
Quando si esegue Set-Secret con il parametro nome per specificare il nome del segreto, il cmdlet chiama GetSecret() implementato dall'estensione dell'insieme di credenziali.
Set-Secret passa attraverso il nome fornito dall'utente. L'estensione dell'insieme di credenziali cerca il segreto in base a tale nome. Se GetSecret() restituisce una corrispondenza, Set-Secret sovrascrive il segreto a meno che non si usi il parametro NoClobber. L'estensione dell'insieme di credenziali scrive sempre le informazioni segrete ricevute.
Spetta all'implementazione dell'estensione dell'insieme di credenziali decidere se usare o meno un confronto con distinzione tra maiuscole e minuscole sul nome. Ad esempio, i nomi dei segreti nell'insieme di credenziali delle estensioni di Microsoft.PowerShell.SecretStore non fanno distinzione tra maiuscole e minuscole. Se il nome passato a Set-Secret differisce solo per caso con il nome di un segreto esistente in un insieme di credenziali secretStore, il nome viene sovrascritto con il nuovo valore specificato.