Share 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 till ett valv. När inget valvnamn anges läggs hemligheten till i standardvalvet. Om det finns en hemlighet med det namnet skrivs den över. Ytterligare data kan inkluderas i hemligheten om det stöds av tilläggsvalvet.

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 LocalStore här exemplet läggs en hemlighet med namnet Secret2 till 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]}

I det här exemplet läggs 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.

I det LocalStore2 här exemplet läggs en hemlighet med namnet PublishSecret till valvet med extra metadata. Valvet 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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Metadata

Anger en hashtabell 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 hash-tabellen 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.

Type:Hashtable
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

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

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

-NoClobber

Gör så 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Secret

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

  • Byte[]
  • Sträng
  • SecureString
  • PSCredential
  • Hashtable
Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SecretInformation
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SecureStringSecret

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

Type:SecureString
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Vault

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

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

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

Hashtable

Utdata

None

Kommentarer

När du kör Set-Secret med parametern Namn för att ange namnet på hemligheten anropar GetSecret() cmdleten 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 GetGecret() returnerar en matchning Set-Secret skriver du ö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 tillägget Microsoft.PowerShell.SecretStore skiftlägesokänsliga. Om namnet du skickar till Set-Secret endast skiljer sig från skiftläge med namnet på en befintlig hemlighet i ett SecretStore-valv skrivs namnet över med det nya värdet som du angav.