Set-Secret
SecretManagement 登録済みコンテナーにシークレットを追加します。
構文
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>]
説明
このコマンドレットは、名前によってシークレット値をコンテナーに追加します。 コンテナー名が指定されていない場合、シークレットは既定のコンテナーに追加されます。 その名前のシークレットが存在する場合は、上書きされます。 拡張コンテナーでサポートされている場合は、シークレットに追加のデータを含めることができます。
既定のパラメーター セットは SecureString オブジェクトを受け取ります。 シークレット値を指定せずにコマンドを実行すると、コマンドレットによって 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
追加します。 シークレット値が指定されていないので、コマンドレットは 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]}
次の使用例は、シークレットの有効期限をLocalStore
示すメタデータを含む という名前TargetSecret
のシークレットをコンテナーに追加します。 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
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Metadata
コンテナー内のシークレットに関連付けるキーと値のペアを含む Hashtable を指定します。 指定された拡張コンテナーでは、シークレット メタデータがサポートされていない可能性があります。 コンテナーでメタデータがサポートされていない場合、操作は失敗し、エラーが返されます。 ハッシュテーブル内のメタデータの値は、次のいずれかの型である必要があります。
- 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
同じ名前のシークレットがコンテナーに既に存在する場合、コマンドからエラーが返されます。 既定では、このコマンドレットは、シークレットが既に存在する場合は、新しい値でシークレットを更新します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Secret
シークレットの値を指定します。 オブジェクトは、サポートされている型のいずれかである必要があります。
- Byte[]
- String
- SecureString
- PSCredential
- Hashtable
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecretInfo
によってGet-SecretInfo
返される格納されたシークレットを記述する SecretInformation オブジェクトを指定します。
これにより、ある拡張機能コンテナーから別の拡張機能コンテナーにシークレットをコピーできます。
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
コマンドレットの実行時に発生する内容を示します。 コマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
出力
None
メモ
Name パラメーターを使用してを実行Set-Secret
してシークレットの名前を指定すると、コンテナー拡張機能によって実装されている がコマンドレットによって呼び出GetSecret()
されます。 Set-Secret
は、ユーザーが指定した名前を渡します。 コンテナー拡張機能は、その名前でシークレットを検索します。 が一致を返す場合 GetGecret()
は、 Set-Secret
NoClobber パラメーターを使用しない限り、シークレットが上書きされます。 コンテナー拡張機能は、受信したシークレット情報を常に書き込みます。
名前に対して大文字と小文字を区別する比較を使用するかどうかを決定するのは、コンテナー拡張機能の実装に依存します。 たとえば、 Microsoft.PowerShell.SecretStore 拡張機能コンテナー内のシークレット名では、大文字と小文字は区別されません。 渡す Set-Secret
名前が SecretStore コンテナー内の既存のシークレットの名前と大文字と小文字のみが異なる場合、名前は指定した新しい値で上書きされます。
PowerShell