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