Partilhar via


Set-Secret

Adiciona um segredo a um cofre registrado do SecretManagement.

Sintaxe

SecureStringParameterSet (Predefinição)

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

Este 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 suportados pelo cofre de extensão.

O conjunto de parâmetros padrão usa um objeto SecureString. Se você executar o comando sem especificar o valor secreto, o cmdlet solicitará que você insira um SecureString. O texto da cadeia de caracteres não é 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 cofre LocalStore. Como nenhum valor secreto foi fornecido, o cmdlet solicita um valor de SecureString. O console oculta o valor da cadeia de caracteres à medida que é 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 cofre LocalStore com metadados indicando a data de expiração 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: Can't store secret PublishSecret. Vault LocalStore2 doesn't support secret metadata.

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

Parâmetros

-Confirm

Solicita confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Metadata

Especifica um Hashtable contendo pares chave-valor a serem associados ao segredo no cofre. O cofre de extensão especificado pode não suportar metadados secretos. Se o cofre não oferecer suporte a metadados, a operação falhará e retornará um erro. Os valores de quaisquer metadados na hashtable devem ser de um dos seguintes tipos:

  • string
  • int
  • Data/Hora

Os metadados não são armazenados de forma segura num cofre. Os metadados não devem conter informações confidenciais.

Propriedades dos parâmetros

Tipo:Hashtable
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SecureStringParameterSet
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
ObjectParameterSet
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Name

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

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SecureStringParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
ObjectParameterSet
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-NoClobber

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Secret

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

  • Byte[]
  • String
  • SecureString
  • PSCredential
  • Hashtable

Propriedades dos parâmetros

Tipo:Object
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

ObjectParameterSet
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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.

Propriedades dos parâmetros

Tipo:Microsoft.PowerShell.SecretManagement.SecretInformation
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SecretInfoParameterSet
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SecureStringSecret

Especifica o valor do segredo como um objeto SecretString.

Propriedades dos parâmetros

Tipo:SecureString
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SecureStringParameterSet
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

SecureStringParameterSet
Position:2
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
ObjectParameterSet
Position:2
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Hashtable

Saídas

None

Notas

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 vault. Set-Secret passa pelo nome fornecido pelo usuário. A extensão vault procura o segredo por esse nome. Se GetSecret() retornar uma correspondência, Set-Secret substituirá o segredo, a menos que você use o parâmetro NoClobber. A extensão do vault sempre grava as informações secretas que recebe.

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