Set-Secret
Ajoute un secret à un coffre inscrit SecretManagement.
Syntaxe
Set-Secret
[-Name] <String>
-SecureStringSecret <SecureString>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Secret
[-Name] <String>
-Secret <Object>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Secret
-SecretInfo <SecretInformation>
[-Vault] <String>
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cette applet de commande ajoute une valeur secrète par nom à un coffre. Quand aucun nom de coffre n’est spécifié, le secret est ajouté au coffre par défaut. Si un secret portant ce nom existe, il est remplacé. Des données supplémentaires peuvent être incluses dans le secret si elles sont prises en charge par le coffre d’extensions.
Le jeu de paramètres par défaut prend un objet SecureString. Si vous exécutez la commande sans spécifier la valeur secrète, l’applet de commande vous invite à entrer un SecureString. Le texte de la chaîne n’est pas visible dans la console.
Exemples
Exemple 1
Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString
Cet exemple montre comment ajouter un secret nommé Secret1
avec une valeur de texte brut de SecretValue
. Étant donné qu’aucun nom de coffre n’a été spécifié, le secret est ajouté au coffre par défaut de l’utilisateur actuel.
Get-Secret
montre que le secret a été ajouté.
Exemple 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
Cet exemple montre comment ajouter un secret nommé Secret2
au coffre LocalStore
. Étant donné qu’aucune valeur secrète n’a été fournie, l’applet de commande demande une valeur SecureString. La console masque la valeur de chaîne telle qu’elle est tapée.
Get-Secret
montre que le secret a été ajouté.
Exemple 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]}
Cet exemple montre comment ajouter un secret nommé TargetSecret
au coffre LocalStore
avec des métadonnées indiquant la date d’expiration du secret.
Get-SecretInfo
récupère les métadonnées du secret nouvellement créé.
Exemple 4
$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name PublishSecret -Secret $targetToken -Vault LocalStore2 -Metadata $Metadata
Set-Secret: Cannot store secret PublishSecret. Vault LocalStore2 does not support secret metadata.
Cet exemple montre comment ajouter un secret nommé PublishSecret
au coffre LocalStore2
avec des métadonnées supplémentaires.
Toutefois, le coffre LocalStore2
ne prend pas en charge les métadonnées secrètes et l’opération retourne une erreur.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Metadata
Spécifie une table de hachage contenant des paires clé-valeur à associer au secret dans le coffre. Le coffre d’extensions spécifié peut ne pas prendre en charge les métadonnées secrètes. Si le coffre ne prend pas en charge les métadonnées, l’opération échoue et retourne une erreur. Les valeurs de toutes les métadonnées de la table de hachage doivent être l’un des types suivants :
- chaîne
- int
- DateTime
Les métadonnées ne sont pas stockées en toute sécurité dans un coffre. Les métadonnées ne doivent pas contenir d’informations sensibles.
Type: | Hashtable |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Name
Spécifie le nom du secret à ajouter ou à mettre à jour. Les caractères génériques (*
) ne sont pas autorisés.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-NoClobber
Provoque le retour d’une erreur si un secret portant le même nom existe déjà dans le coffre. Par défaut, cette applet de commande met à jour le secret avec la nouvelle valeur s’il existe déjà.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Secret
Spécifie la valeur du secret. L’objet doit être l’un des types pris en charge :
- byte[]
- chaîne
- secureString
- PSCredential
- de table de hachage
Type: | Object |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-SecretInfo
Spécifie un objet SecretInformation décrivant un secret stocké retourné par Get-SecretInfo
.
Cela permet de copier des secrets d’un coffre d’extensions vers un autre.
Type: | SecretInformation |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-SecureStringSecret
Spécifie la valeur du secret en tant qu’objet SecretString.
Type: | SecureString |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Vault
Spécifie le nom du coffre dans lequel ajouter ou mettre à jour le secret. Les caractères génériques (*
) ne sont pas autorisés. Par défaut, le secret est ajouté ou mis à jour dans le coffre par défaut de l’utilisateur actuel.
Type: | String |
Position: | 2 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Sorties
None
Notes
Lorsque vous exécutez Set-Secret
avec le paramètre Name pour spécifier le nom du secret, l’applet de commande appelle GetSecret()
implémentée par l’extension du coffre.
Set-Secret
passe par le nom fourni par l’utilisateur. L’extension de coffre recherche le secret par ce nom. Si GetSecret()
retourne une correspondance, Set-Secret
remplace le secret, sauf si vous utilisez le paramètre NoClobber. L’extension de coffre écrit toujours les informations secrètes qu’elle reçoit.
Il appartient à l’implémentation de l’extension du coffre de décider s’il faut ou non utiliser une comparaison sensible à la casse sur le nom. Par exemple, les noms de secrets dans Microsoft.PowerShell.SecretStore coffre d’extensions ne respectent pas la casse. Si le nom que vous passez à Set-Secret
diffère uniquement par le cas avec le nom d’un secret existant dans un coffre SecretStore, le nom est remplacé par la nouvelle valeur que vous avez fournie.