Set-Secret
Adiciona um segredo a um cofre registrado do SecretManagement.
Sintaxe
SecureStringParameterSet (Default)
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
Importante
A equipe do PowerShell decidiu que os módulos Secret são completos em recursos e não serão mais desenvolvidos ativamente. Os módulos continuarão a ser suportados para correções de segurança e bugs críticos. O repositório de código será arquivado.
As versões mais recentes publicadas são:
A natureza dos segredos mudou fundamentalmente desde que este projeto foi concebido. Métodos de autenticação sem senha, como chaves de acesso, login único e sistemas federados de credenciais, como Microsoft Entra ID, biometria e chaves de segurança de hardware, são o futuro.
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 houver um segredo com esse nome, ele será substituído. Dados adicionais podem ser incluídos com o segredo se tiver suporte no 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 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 cofre LocalStore. Como nenhum valor secreto foi fornecido, o cmdlet solicita um valor de 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 cofre de LocalStore 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: Can't store secret PublishSecret. Vault LocalStore2 doesn't support secret metadata.
Este exemplo adiciona um segredo chamado PublishSecret ao cofre de LocalStore2 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.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | cf |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Metadata
Especifica um hashable 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:
- string
- int
- Data e hora
Os metadados não são armazenados com segurança em um cofre. Os metadados não devem conter informações confidenciais.
Propriedades do parâmetro
| Tipo: | Hashtable |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SecureStringParameterSet
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
ObjectParameterSet
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Name
Especifica o nome do segredo a ser adicionado ou atualizado. Caracteres curinga (*) não são permitidos.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SecureStringParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
ObjectParameterSet
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-NoClobber
Faz com que o comando retorne um erro se já existir um segredo com o mesmo nome no cofre. Por padrão, esse cmdlet atualiza o segredo com o novo valor se ele já existir.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-Secret
Especifica o valor do segredo. O objeto deve ser um dos tipos com suporte:
- Byte[]
- String
- SecureString
- PSCredential
- hashable
Propriedades do parâmetro
| Tipo: | Object |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
ObjectParameterSet
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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 do parâmetro
| Tipo: | Microsoft.PowerShell.SecretManagement.SecretInformation |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SecretInfoParameterSet
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-SecureStringSecret
Especifica o valor do segredo como um objeto SecretString.
Propriedades do parâmetro
| Tipo: | SecureString |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SecureStringParameterSet
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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 do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
SecureStringParameterSet
| Cargo: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
ObjectParameterSet
| Cargo: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | False |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | wi |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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
Observações
Quando você executa Set-Secret com o parâmetro Name para especificar o nome do segredo, o cmdlet chama GetSecret() implementadas pela extensão do cofre.
Set-Secret passa pelo nome, conforme fornecido pelo usuário. A extensão do cofre procura o segredo com 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 cofre sempre grava as informações secretas recebidas.
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, nomes secretos no cofre de extensão Microsoft.PowerShell.SecretStore não diferenciam maiúsculas de minúsculas. Se o nome que você passar para Set-Secret for diferente apenas por caso com o nome de um segredo existente em um cofre SecretStore, o nome será substituído com o novo valor fornecido.