Set-Secret
Lägger till en hemlighet i ett SecretManagement-registrerat valv.
Syntax
SecureStringParameterSet (Standard)
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
Important
PowerShell-teamet har beslutat att Secret-moduler är funktionskompletta och inte längre kommer att utvecklas aktivt. Modulerna kommer fortsatt att stödjas för säkerhet och kritiska buggfixar. Kodarkivet har arkiverats.
De senaste publicerade versionerna är:
Hemligheternas natur har förändrats fundamentalt sedan detta projekt designades. Lösenordslösa autentiseringsmetoder som lösennycklar, single sign-on och federerade autentiseringssystem som Microsoft Entra ID, biometrik och hårdvarusäkerhetsnycklar är framtiden.
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: Can't store secret PublishSecret. Vault LocalStore2 doesn't 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.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | jfr |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | Hashtable |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SecureStringParameterSet
| Position: | 1 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
ObjectParameterSet
| Position: | 1 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Name
Anger namnet på hemligheten som ska läggas till eller uppdateras. Jokertecken (*) tillåts inte.
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SecureStringParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
ObjectParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Secret
Anger hemlighetens värde. Objektet måste vara en av de typer som stöds:
- byte[]
- String
- SecureString
- PSCredential
- Hash-tabell
Parameteregenskaper
| Typ: | Object |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
ObjectParameterSet
| Position: | Named |
| Obligatorisk: | True |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | Microsoft.PowerShell.SecretManagement.SecretInformation |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SecretInfoParameterSet
| Position: | Named |
| Obligatorisk: | True |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-SecureStringSecret
Anger värdet för hemligheten som ett SecretString- objekt.
Parameteregenskaper
| Typ: | SecureString |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SecureStringParameterSet
| Position: | Named |
| Obligatorisk: | True |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | 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.
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SecureStringParameterSet
| Position: | 2 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
ObjectParameterSet
| Position: | 2 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-WhatIf
Visar vad som skulle hända om kommandot körs. Cmdleten körs inte.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | Wi |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
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.