Compartir a través de


Set-Secret

Agrega un secreto a un almacén registrado 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

Este cmdlet agrega un valor secreto por nombre a un almacén. Cuando no se especifica ningún nombre de almacén, el secreto se agrega al almacén predeterminado. Si existe un secreto con ese nombre, se sobrescribe. Los datos adicionales se pueden incluir con el secreto si es compatible con el almacén de extensiones.

El conjunto de parámetros predeterminado toma un objeto SecureString . Si ejecuta el comando sin especificar el valor del secreto, el cmdlet le pedirá que escriba secureString. El texto de la cadena no está visible en la consola.

Ejemplos

Ejemplo 1

Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1

System.Security.SecureString

En este ejemplo se agrega un secreto denominado Secret1 con un valor de texto sin formato de SecretValue. Puesto que no se especificó ningún nombre de almacén, el secreto se agrega al almacén predeterminado del usuario actual. Get-Secret muestra que se agregó el secreto.

Ejemplo 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

En este ejemplo se agrega un secreto denominado Secret2 al LocalStore almacén. Dado que no se proporcionó ningún valor secreto, el cmdlet solicita un valor SecureString . La consola oculta el valor de cadena a medida que se escribe. Get-Secret muestra que se agregó el secreto.

Ejemplo 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]}

En este ejemplo se agrega un secreto denominado TargetSecret al LocalStore almacén con metadatos que indican la fecha de expiración del secreto. Get-SecretInfo recupera los metadatos del secreto recién creado.

Ejemplo 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.

En este ejemplo se agrega un secreto denominado PublishSecret al LocalStore2 almacén con metadatos adicionales. Sin embargo, el almacén LocalStore2 no admite metadatos secretos y la operación devuelve un error.

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

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

-Metadata

Especifica una tabla hash que contiene pares clave-valor que se van a asociar al secreto del almacén. Es posible que el almacén de extensiones especificado no admita metadatos secretos. Si el almacén no admite metadatos, se produce un error en la operación y devuelve un error. Los valores de los metadatos de la tabla hash deben ser uno de los siguientes tipos:

  • string
  • int
  • DateTime

Los metadatos no se almacenan de forma segura en un almacén. Los metadatos no deben contener información confidencial.

Type:Hashtable
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Especifica el nombre del secreto que se va a agregar o actualizar. No se permiten caracteres comodín (*).

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

Hace que el comando devuelva un error si ya existe un secreto con el mismo nombre en el almacén. De forma predeterminada, este cmdlet actualiza el secreto con el nuevo valor si ya existe.

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

-Secret

Especifica el valor del secreto. El objeto debe ser uno de los tipos admitidos:

  • Byte[]
  • String
  • SecureString
  • PSCredential
  • Hashtable
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SecretInfo

Especifica un objeto SecretInformation que describe un secreto almacenado devuelto por Get-SecretInfo. Esto permite copiar secretos de un almacén de extensiones a otro.

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

-SecureStringSecret

Especifica el valor del secreto como un objeto SecretString .

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

-Vault

Especifica el nombre del almacén en el que se va a agregar o actualizar el secreto. No se permiten caracteres comodín (*). De forma predeterminada, el secreto se agrega o actualiza en el almacén predeterminado del usuario actual.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

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

Entradas

Hashtable

Salidas

None

Notas

Cuando se ejecuta Set-Secret con el parámetro Name para especificar el nombre del secreto, el cmdlet llama GetSecret() a que implementa la extensión del almacén. Set-Secret pasa por el nombre proporcionado por el usuario. La extensión del almacén busca el secreto por ese nombre. Si GetGecret() devuelve una coincidencia, sobrescribe el secreto a Set-Secret menos que use el parámetro NoClobber . La extensión del almacén siempre escribe la información secreta que recibe.

Depende de la implementación de la extensión del almacén decidir si se debe usar o no una comparación con distinción entre mayúsculas y minúsculas en el nombre. Por ejemplo, los nombres de secretos del almacén de extensiones Microsoft.PowerShell.SecretStore no distinguen mayúsculas de minúsculas. Si el nombre que pasa solo Set-Secret difiere por mayúsculas y minúsculas con el nombre de un secreto existente en un almacén de SecretStore, el nombre se sobrescribe con el nuevo valor proporcionado.