Set-Secret
Fügt einen geheimen Schlüssel zu einem registrierten Tresor von SecretManagement hinzu.
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>]
Beschreibung
Dieses Cmdlet fügt einem Tresor einen geheimen Wert nach Namen hinzu. Wenn kein Tresorname angegeben wird, wird der geheime Schlüssel dem Standardtresor hinzugefügt. Wenn ein Geheimschlüssel mit diesem Namen vorhanden ist, wird er überschrieben. Zusätzliche Daten können im geheimen Schlüssel enthalten sein, wenn sie vom Erweiterungstresor unterstützt werden.
Der Standardparametersatz akzeptiert ein SecureString--Objekt. Wenn Sie den Befehl ausführen, ohne den geheimen Wert anzugeben, werden Sie vom Cmdlet aufgefordert, eine SecureString-einzugeben. Der Text der Zeichenfolge ist in der Konsole nicht sichtbar.
Beispiele
Beispiel 1
Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString
In diesem Beispiel wird ein Geheimschlüssel namens Secret1
mit einem Nur-Text-Wert von SecretValue
hinzugefügt. Da kein Tresorname angegeben wurde, wird der geheime Schlüssel dem Standardtresor des aktuellen Benutzers hinzugefügt.
Get-Secret
zeigt, dass der geheime Schlüssel hinzugefügt wurde.
Beispiel 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
In diesem Beispiel wird dem Secret2
Tresor ein Geheimschlüssel mit dem Namen LocalStore
hinzugefügt. Da kein geheimer Wert angegeben wurde, fordert das Cmdlet einen SecureString- Wert ein. Die Konsole blendet den Zeichenfolgenwert aus, während er eingegeben wird.
Get-Secret
zeigt, dass der geheime Schlüssel hinzugefügt wurde.
Beispiel 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]}
In diesem Beispiel wird dem TargetSecret
Tresor ein geheimer LocalStore
mit Metadaten hinzugefügt, der das Ablaufdatum des geheimen Schlüssels angibt.
Get-SecretInfo
ruft die Metadaten für den neu erstellten geheimen Schlüssel ab.
Beispiel 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.
In diesem Beispiel wird dem PublishSecret
Tresor mit zusätzlichen Metadaten ein Geheimschlüssel mit dem Namen LocalStore2
hinzugefügt.
Der Tresor LocalStore2
unterstützt jedoch keine geheimen Metadaten, und der Vorgang gibt einen Fehler zurück.
Parameter
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Metadata
Gibt eine Hashtable- mit Schlüsselwertpaaren an, die dem geheimen Schlüssel im Tresor zugeordnet werden sollen. Der angegebene Erweiterungstresor unterstützt möglicherweise keine geheimen Metadaten. Wenn der Tresor keine Metadaten unterstützt, schlägt der Vorgang fehl und gibt einen Fehler zurück. Die Werte aller Metadaten in der Hashtabelle müssen einen der folgenden Typen aufweisen:
- Zeichenfolge
- int
- DateTime-
Metadaten werden nicht sicher in einem Tresor gespeichert. Metadaten sollten keine vertraulichen Informationen enthalten.
Typ: | Hashtable |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt den Namen des geheimen Schlüssels an, der hinzugefügt oder aktualisiert werden soll. Wildcardzeichen (*
) sind nicht zulässig.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-NoClobber
Bewirkt, dass der Befehl einen Fehler zurückgibt, wenn bereits ein Geheimschlüssel mit demselben Namen im Tresor vorhanden ist. Standardmäßig aktualisiert dieses Cmdlet den geheimen Schlüssel mit dem neuen Wert, sofern er bereits vorhanden ist.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Secret
Gibt den Wert des geheimen Schlüssels an. Das Objekt muss eines der unterstützten Typen sein:
- Byte[]
- Zeichenfolgen-
- SecureString-
- PSCredential-
- hashtable
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-SecretInfo
Gibt ein SecretInformation Objekt an, das ein gespeichertes Geheimnis beschreibt, das von Get-SecretInfo
zurückgegeben wird.
Dadurch können geheime Schlüssel aus einem Erweiterungstresor in einen anderen kopiert werden.
Typ: | SecretInformation |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-SecureStringSecret
Gibt den Wert des geheimen Schlüssels als SecretString- -Objekt an.
Typ: | SecureString |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Vault
Gibt den Namen des Tresors an, in dem der geheime Schlüssel hinzugefügt oder aktualisiert werden soll. Wildcardzeichen (*
) sind nicht zulässig. Standardmäßig wird der geheime Schlüssel im Standardtresor des aktuellen Benutzers hinzugefügt oder aktualisiert.
Typ: | String |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Ausgaben
None
Hinweise
Wenn Sie Set-Secret
mit dem Parameter Name ausführen, um den Namen des geheimen Schlüssels anzugeben, ruft das Cmdlet GetSecret()
auf, das von der Vault-Erweiterung implementiert wird.
Set-Secret
den Vom Benutzer bereitgestellten Namen durchläuft. Die Tresorerweiterung sucht das Geheimnis anhand dieses Namens. Wenn GetSecret()
eine Übereinstimmung zurückgibt, überschreibt Set-Secret
den geheimen Schlüssel, es sei denn, Sie verwenden den NoClobber Parameter. Die Tresorerweiterung schreibt immer die geheimen Informationen, die sie empfängt.
Es liegt an der Vault-Erweiterungsimplementierung, um zu entscheiden, ob ein Vergleich zwischen Groß- und Kleinschreibung für den Namen verwendet werden soll. Bei geheimen Namen im Microsoft.PowerShell.SecretStore Erweiterungstresor wird die Groß-/Kleinschreibung nicht beachtet. Wenn sich der Name, den Sie an Set-Secret
übergeben, nur nach Groß-/Kleinschreibung mit dem Namen eines vorhandenen geheimen Schlüssels in einem SecretStore-Tresor unterscheidet, wird der Name mit dem von Ihnen angegebenen neuen Wert überschrieben.