Share via


Set-Secret

Adiciona um segredo a um cofre registado 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 adiciona um valor secreto por nome a um cofre. Quando não é especificado nenhum nome do cofre, o segredo é adicionado ao cofre predefinido. Se existir um segredo com esse nome, é substituído. Podem ser incluídos dados adicionais com o segredo se forem suportados pelo cofre de extensões.

O conjunto de parâmetros predefinido utiliza um objeto SecureString . Se executar o comando sem especificar o valor do segredo, o cmdlet pede-lhe para introduzir um SecureString. O texto da cadeia não está visível na consola do .

Exemplos

Exemplo 1

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

System.Security.SecureString

Este exemplo adiciona um segredo com o nome Secret1 com um valor de texto simples de SecretValue. Uma vez que não foi especificado nenhum nome do cofre, o segredo é adicionado ao cofre predefinido do utilizador 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 com o nome Secret2 ao LocalStore cofre. Uma vez que não foi fornecido nenhum valor secreto, o cmdlet pede um valor SecureString . A consola oculta o valor da cadeia à medida que é escrita. 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 com o nome TargetSecret ao LocalStore cofre com metadados que indicam a data de expiração do segredo. Get-SecretInfo obtém os metadados do segredo recentemente 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 com o nome PublishSecret ao LocalStore2 cofre com metadados adicionais. No entanto, o cofre LocalStore2 não suporta metadados secretos e a operação devolve um erro.

Parâmetros

-Confirm

Solicita a 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 uma Tabela Hash que contém pares chave-valor para associar ao segredo no cofre. O cofre de extensões especificado pode não suportar metadados secretos. Se o cofre não suportar metadados, a operação falha e devolve um erro. Os valores de quaisquer metadados na tabela hash têm de ser um dos seguintes tipos:

  • string
  • int
  • DateTime

Os metadados não são armazenados de forma segura num 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 adicionar ou atualizar. Os carateres universais (*) 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 devolva um erro se já existir um segredo com o mesmo nome no cofre. Por predefinição, este cmdlet atualiza o segredo com o novo valor se 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 tem de ser um dos tipos suportados:

  • Byte[]
  • String
  • 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 devolvido por Get-SecretInfo. Isto permite copiar segredos de um cofre de extensões 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 para adicionar ou atualizar o segredo. Os carateres universais (*) não são permitidos. Por predefinição, o segredo é adicionado ou atualizado no cofre predefinido do utilizador atual.

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

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. 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

Notas

Quando executa Set-Secret com o parâmetro Nome para especificar o nome do segredo, o cmdlet chama GetSecret() que é implementado pela extensão do cofre. Set-Secret transmite o nome conforme fornecido pelo utilizador. A extensão do cofre procura o segredo por esse nome. Se GetGecret() devolver uma correspondência, Set-Secret substitui o segredo, a menos que utilize o parâmetro NoClobber . A extensão do cofre escreve sempre as informações secretas que recebe.

Cabe à implementação da extensão do cofre decidir se deve ou não utilizar uma comparação sensível a maiúsculas e minúsculas no nome. Por exemplo, os nomes de segredos no cofre de extensões Microsoft.PowerShell.SecretStore não são sensíveis a maiúsculas e minúsculas. Se o nome que transmitir Set-Secret for diferente apenas por caso com o nome de um segredo existente num cofre secretStore, o nome será substituído pelo novo valor que forneceu.