Dela via


Set-Secret

Lägger till en hemlighet i ett SecretManagement-registrerat valv.

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

Den här cmdleten lägger till ett hemligt värde efter namn i ett valv. När inget valvnamn har angetts läggs hemligheten till i standardvalvet. Om det finns en hemlighet med det namnet skrivs den över. Ytterligare data kan ingå i hemligheten om de stöds av tilläggets valv.

Standardparameteruppsättningen tar ett SecureString--objekt. Om du kör kommandot utan att ange det hemliga värdet uppmanar cmdleten dig att ange en SecureString-. Texten i strängen visas inte i konsolen.

Exempel

Exempel 1

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

System.Security.SecureString

Det här exemplet lägger till en hemlighet med namnet Secret1 med ett oformaterad textvärde på SecretValue. Eftersom inget valvnamn har angetts läggs hemligheten till i den aktuella användarens standardvalv. Get-Secret visar att hemligheten har lagts till.

Exempel 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

I det här exemplet läggs en hemlighet med namnet Secret2 till LocalStore valvet. Eftersom inget hemligt värde angavs frågar cmdleten efter ett SecureString- värde. Konsolen döljer strängvärdet när det skrivs. Get-Secret visar att hemligheten har lagts till.

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

Det här exemplet lägger till en hemlighet med namnet TargetSecret till LocalStore-valvet med metadata som anger hemlighetens förfallodatum. Get-SecretInfo hämtar metadata för den nyligen skapade hemligheten.

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

Det här exemplet lägger till en hemlighet med namnet PublishSecret till LocalStore2-valvet med extra metadata. Valv LocalStore2 stöder dock inte hemliga metadata och åtgärden returnerar ett fel.

Parametrar

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Metadata

Anger en Hashtable- som innehåller nyckel/värde-par som ska associeras med hemligheten i valvet. Det angivna tilläggsvalvet kanske inte stöder hemliga metadata. Om valvet inte stöder metadata misslyckas åtgärden och returnerar ett fel. Värdena för metadata i hashtabellen måste vara någon av följande typer:

  • sträng
  • int
  • DateTime

Metadata lagras inte säkert i ett valv. Metadata får inte innehålla känslig information.

Typ:Hashtable
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Name

Anger namnet på hemligheten som ska läggas till eller uppdateras. Jokertecken (*) tillåts inte.

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-NoClobber

Gör att kommandot returnerar ett fel om det redan finns en hemlighet med samma namn i valvet. Som standard uppdaterar den här cmdleten hemligheten med det nya värdet om den redan finns.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Secret

Anger hemlighetens värde. Objektet måste vara en av de typer som stöds:

  • byte[]
  • String
  • SecureString
  • PSCredential
  • Hashtable
Typ:Object
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-SecretInfo

Anger ett SecretInformation- objekt som beskriver en lagrad hemlighet som returneras av Get-SecretInfo. På så sätt kan du kopiera hemligheter från ett tilläggsvalv till ett annat.

Typ:SecretInformation
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-SecureStringSecret

Anger värdet för hemligheten som ett SecretString- objekt.

Typ:SecureString
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Vault

Anger namnet på valvet som du vill lägga till eller uppdatera hemligheten i. Jokertecken (*) tillåts inte. Som standard läggs hemligheten till eller uppdateras i den aktuella användarens standardvalv.

Typ:String
Position:2
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-WhatIf

Visar vad som skulle hända om cmdleten körs. Cmdleten körs inte.

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

Hashtable

Utdata

None

Kommentarer

När du kör Set-Secret med parametern Name för att ange namnet på hemligheten anropar cmdleten GetSecret() som implementeras av valvtillägget. Set-Secret passerar genom namnet som tillhandahålls av användaren. Valvtillägget söker upp hemligheten med det namnet. Om GetSecret() returnerar en matchning skriver Set-Secret över hemligheten om du inte använder parametern NoClobber. Valvtillägget skriver alltid den hemliga information som det tar emot.

Det är upp till implementeringen av valvtillägget att avgöra om en skiftlägeskänslig jämförelse av namnet ska användas eller inte. Till exempel är hemliga namn i Microsoft.PowerShell.SecretStore-tilläggsvalv skiftlägeskänsliga. Om namnet du skickar till Set-Secret endast skiljer sig från fall till fall med namnet på en befintlig hemlighet i ett SecretStore-valv skrivs namnet över med det nya värdet som du angav.