Set-Secret
將秘密新增至 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
此 Cmdlet 會依名稱將秘密值新增至保存庫。 未指定保存庫名稱時,會將秘密新增至預設保存庫。 如果具有該名稱的秘密存在,則會覆寫它。 如果擴充保存庫支援,則可以將其他資料包含在秘密中。
預設參數集會採用 SecureString 物件。 如果您執行命令而不指定秘密值,Cmdlet 會提示您輸入 SecureString。 在主控台中看不到字串的文字。
範例
範例 1
Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString
本範例會新增名為 Secret1
且純文字值為 的 SecretValue
秘密。 由於未指定保存庫名稱,因此密碼會新增至目前使用者的預設保存庫。 Get-Secret
顯示已新增秘密。
範例 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
本範例會將名為 Secret2
的秘密新增至保存 LocalStore
庫。 由於未提供任何秘密值,因此 Cmdlet 會提示 SecureString 值。 主控台會在輸入字串值時隱藏字串值。 Get-Secret
顯示已新增秘密。
範例 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]}
本範例會將名為 TargetSecret
的秘密新增至保存庫, LocalStore
其中包含指出秘密到期日的中繼資料。 Get-SecretInfo
擷取新建立秘密的中繼資料。
範例 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.
此範例會使用額外的中繼資料,將名為 的 PublishSecret
秘密新增至 LocalStore2
保存庫。
不過,保存庫 LocalStore2
不支援秘密中繼資料,而且作業會傳回錯誤。
參數
-Confirm
在執行 Cmdlet 前提示您確認。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Metadata
指定 雜湊表 ,其中包含要與保存庫中秘密建立關聯的金鑰/值組。 指定的擴充保存庫可能不支援秘密中繼資料。 如果保存庫不支援中繼資料,作業會失敗並傳回錯誤。 雜湊表中任何中繼資料的值必須是下列其中一種類型:
- string
- int
- DateTime
中繼資料不會安全地儲存在保存庫中。 中繼資料不應包含敏感性資訊。
Type: | Hashtable |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
指定要新增或更新的秘密名稱。 不允許萬用字元 (*
) 。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoClobber
如果保存庫中已有相同名稱的秘密,則會導致命令傳回錯誤。 根據預設,如果秘密已經存在,此 Cmdlet 會以新的值來更新秘密。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Secret
指定秘密的值。 物件必須是其中一個支援的類型:
- Byte[]
- 字串
- SecureString
- PSCredential
- Hashtable
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecretInfo
指定 SecretInformation 物件,描述 所 Get-SecretInfo
傳回的預存秘密。
這可讓您將秘密從一個擴充保存庫複製到另一個保存庫。
Type: | SecretInformation |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecureStringSecret
指定秘密的值做為 SecretString 物件。
Type: | SecureString |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Vault
指定要新增或更新秘密的保存庫名稱。 不允許萬用字元 (*
) 。 根據預設,密碼會在目前使用者的預設保存庫中新增或更新。
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 不會執行此 Cmdlet。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
輸出
None
備註
當您使用Name參數執行 Set-Secret
以指定秘密的名稱時,保存庫擴充功能所實作的 Cmdlet 呼叫。 GetSecret()
Set-Secret
傳遞使用者所提供的名稱。 保存庫延伸模組會依該名稱查閱秘密。 如果傳 GetGecret()
回相符專案, Set-Secret
除非您使用 NoClobber 參數,否則會覆寫秘密。 保存庫延伸模組一律會寫入其收到的秘密資訊。
保存庫延伸模組實作是決定是否要在名稱上使用區分大小寫的比較。 例如, Microsoft.PowerShell.SecretStore 擴充保存庫中的秘密名稱不區分大小寫。 如果您傳遞至 Set-Secret
的名稱只會因 SecretStore 保存庫中現有秘密的名稱而有所不同,則會以您提供的新值覆寫名稱。