Compartilhar via


Set-Secret

Adiciona um segredo a um cofre 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

Esse cmdlet adiciona um valor secreto por nome a um cofre. Quando nenhum nome de cofre é especificado, o segredo é adicionado ao cofre padrão. Se existir um segredo com esse nome, ele será substituído. Dados adicionais podem ser incluídos com o segredo se houver suporte do cofre de extensões.

O conjunto de parâmetros padrão usa um objeto SecureString . Se você executar o comando sem especificar o valor do segredo, o cmdlet solicitará que você insira um SecureString. O texto da cadeia de caracteres não está visível no console.

Exemplos

Exemplo 1

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

System.Security.SecureString

Este exemplo adiciona um segredo chamado Secret1 com um valor de texto sem formatação de SecretValue. Como nenhum nome de cofre foi especificado, o segredo é adicionado ao cofre padrão do usuário atual. Get-Secret mostra que o segredo foi adicionado.

Exemplo 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

Este exemplo adiciona um segredo chamado Secret2 ao LocalStore cofre. Como nenhum valor secreto foi fornecido, o cmdlet solicita um valor SecureString . O console oculta o valor da cadeia de caracteres conforme ele é digitado. Get-Secret mostra que o segredo foi adicionado.

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

Este exemplo adiciona um segredo chamado TargetSecret ao LocalStore cofre com metadados que indicam a data de validade do segredo. Get-SecretInfo recupera os metadados do segredo recém-criado.

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

Este exemplo adiciona um segredo chamado PublishSecret ao LocalStore2 cofre com metadados extras. No entanto, o cofre LocalStore2 não dá suporte a metadados secretos e a operação retorna um erro.

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

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

-Metadata

Especifica um Hashtable que contém pares chave-valor a serem associados ao segredo no cofre. O cofre de extensão especificado pode não dar suporte a metadados secretos. Se o cofre não der suporte a metadados, a operação falhará e retornará um erro. Os valores de todos os metadados no hashtable devem ser um dos seguintes tipos:

  • cadeia de caracteres
  • int
  • DateTime

Os metadados não são armazenados com segurança em um cofre. Os metadados não devem conter informações confidenciais.

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

-Name

Especifica o nome do segredo a ser adicionado ou atualizado. Caracteres curinga (*) não são permitidos.

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

-NoClobber

Faz com que o comando retorne um erro se um segredo com o mesmo nome já existir no cofre. Por padrão, esse cmdlet atualiza o segredo com o novo valor se ele já existir.

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

-Secret

Especifica o valor do segredo. O objeto deve ser um dos tipos com suporte:

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

-SecretInfo

Especifica um objeto SecretInformation que descreve um segredo armazenado retornado por Get-SecretInfo. Isso permite copiar segredos de um cofre de extensão para outro.

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

-SecureStringSecret

Especifica o valor do segredo como um objeto SecretString .

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

-Vault

Especifica o nome do cofre no qual adicionar ou atualizar o segredo. Caracteres curinga (*) não são permitidos. Por padrão, o segredo é adicionado ou atualizado no cofre padrão do usuário atual.

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

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

Hashtable

Saídas

None

Observações

Quando você executa Set-Secret com o parâmetro Name para especificar o nome do segredo, o cmdlet chama GetSecret() que é implementado pela extensão do cofre. Set-Secret passa pelo nome conforme fornecido pelo usuário. A extensão do cofre procura o segredo por esse nome. Se GetGecret() retornar uma correspondência, Set-Secret substituirá o segredo, a menos que você use o parâmetro NoClobber . A extensão do cofre sempre grava as informações secretas que recebe.

Cabe à implementação da extensão do cofre decidir se deve ou não usar uma comparação que diferencia maiúsculas de minúsculas no nome. Por exemplo, os nomes de segredo no cofre de extensão Microsoft.PowerShell.SecretStore não diferenciam maiúsculas de minúsculas. Se o nome para Set-Secret o qual você passa for diferente apenas por caso com o nome de um segredo existente em um cofre SecretStore, o nome será substituído pelo novo valor fornecido.