Set-Secret
Agrega un secreto a un almacén registrado de SecretManagement.
Sintaxis
SecureStringParameterSet (valor predeterminado)
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>]
Description
Important
El equipo de PowerShell ha decidido que los módulos Secret son completos en funciones y que ya no se desarrollarán activamente. Los módulos seguirán siendo compatibles con la seguridad y la corrección de errores críticos. El repositorio de código será archivado.
Las últimas versiones publicadas son:
La naturaleza de los secretos ha cambiado fundamentalmente desde que se diseñó este proyecto. Los métodos de autenticación sin contraseña como las llaves de acceso, el inicio de sesión único y los sistemas federados de credenciales como Microsoft Entra ID, biometría y claves de seguridad hardware son el futuro.
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. Se pueden incluir datos adicionales 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 pide que escriba un 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. Dado 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 almacén de LocalStore. Dado que no se proporcionó ningún valor secreto, el cmdlet solicita un valor de SecureString. La consola oculta el valor de cadena tal como 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 almacén de LocalStore 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: Can't store secret PublishSecret. Vault LocalStore2 doesn't support secret metadata.
En este ejemplo se agrega un secreto denominado PublishSecret al almacén de LocalStore2 con metadatos adicionales.
Sin embargo, el almacén LocalStore2 no admite metadatos secretos y la operación devuelve un error.
Parámetros
-Confirm
Le pide confirmación antes de ejecutar el cmdlet.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | cf |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Metadata
Especifica un hashtable 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 se devuelve un error. Los valores de los metadatos de la tabla hash deben ser uno de los siguientes tipos:
- cadena
- int
- DateTime
Los metadatos no se almacenan de forma segura en un almacén. Los metadatos no deben contener información confidencial.
Propiedades de parámetro
| Tipo: | Hashtable |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SecureStringParameterSet
| Posición: | 1 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ObjectParameterSet
| Posición: | 1 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Name
Especifica el nombre del secreto que se va a agregar o actualizar. No se permiten caracteres comodín (*).
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SecureStringParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ObjectParameterSet
| Posición: | 0 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Secret
Especifica el valor del secreto. El objeto debe ser uno de los tipos admitidos:
- Byte[]
- cadena
- SecureString
- PSCredential
- hashtable
Propiedades de parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ObjectParameterSet
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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.
Propiedades de parámetro
| Tipo: | Microsoft.PowerShell.SecretManagement.SecretInformation |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SecretInfoParameterSet
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SecureStringSecret
Especifica el valor del secreto como un objeto SecretString.
Propiedades de parámetro
| Tipo: | SecureString |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SecureStringParameterSet
| Posición: | Named |
| Obligatorio: | True |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SecureStringParameterSet
| Posición: | 2 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ObjectParameterSet
| Posición: | 2 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-WhatIf
Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Wi |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Hashtable
Salidas
None
Notas
Al ejecutar Set-Secret con el parámetro Name para especificar el nombre del secreto, el cmdlet llama a GetSecret() 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 GetSecret() devuelve una coincidencia, Set-Secret sobrescribe el secreto a 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 que distingue mayúsculas de minúsculas en el nombre. Por ejemplo, los nombres de secreto de la microsoft.PowerShell.SecretStore almacén de extensiones no distinguen mayúsculas de minúsculas. Si el nombre que pasa a Set-Secret difiere solo 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.