Partager via


Set-Secret

Ajoute un secret à un coffre inscrit à SecretManagement.

Syntax

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 de secret par nom à un coffre. Lorsqu’aucun nom de coffre n’est spécifié, le secret est ajouté au coffre par défaut. S’il existe un secret portant ce nom, il est remplacé. Des données supplémentaires peuvent être incluses avec le secret si elles sont prises en charge par le coffre d’extension.

L’ensemble de paramètres par défaut prend un objet SecureString . Si vous exécutez la commande sans spécifier la valeur de secret, 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 la valeur de texte brut .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 LocalStore coffre. Étant donné qu’aucune valeur de secret n’a été fournie, l’applet de commande demande une valeur SecureString . La console masque la valeur de chaîne à mesure 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 LocalStore coffre 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 LocalStore2 coffre avec des métadonnées supplémentaires. Toutefois, le coffre LocalStore2 ne prend pas en charge les métadonnées de secret et l’opération retourne une erreur.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Metadata

Spécifie une table de hachage contenant des paires clé-valeur à associer au secret dans le coffre. Le coffre d’extension spécifié peut ne pas prendre en charge les métadonnées de secret. Si le coffre ne prend pas en charge les métadonnées, l’opération échoue et retourne une erreur. Les valeurs des métadonnées de la table de hachage doivent être de l’un des types suivants :

  • string
  • int
  • DateTime

Les métadonnées ne sont pas stockées de manière sécurisée dans un coffre. Les métadonnées ne doivent pas contenir d’informations sensibles.

Type:Hashtable
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

Provoque le renvoi d’une erreur par la commande 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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Secret

Spécifie la valeur du secret. L’objet doit être l’un des types pris en charge :

  • Byte[]
  • Chaîne
  • SecureString
  • PSCredential
  • Hashtable
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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’extension vers un autre.

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

-SecureStringSecret

Spécifie la valeur du secret en tant qu’objet SecretString .

Type:SecureString
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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() qui est implémentée par l’extension de coffre. Set-Secret passe par le nom fourni par l’utilisateur. L’extension de coffre recherche le secret sous ce nom. Si GetGecret() 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.

C’est à l’implémentation de l’extension de coffre de décider d’utiliser ou non une comparaison respectant la casse sur le nom. Par exemple, les noms de secrets dans le coffre d’extension Microsoft.PowerShell.SecretStore ne respectent pas la casse. Si le nom auquel Set-Secret vous passez diffère uniquement par la casse avec le nom d’un secret existant dans un coffre SecretStore, le nom est remplacé par la nouvelle valeur que vous avez fournie.