Partager via


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

Hashtable

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.