Set-Secret
Fügt einem registrierten SecretManagement-Tresor ein Geheimnis 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 Geheimniswert anhand des Namens hinzu. Wenn kein Tresorname angegeben wird, wird das Geheimnis dem Standardtresor hinzugefügt. Wenn ein Geheimnis mit diesem Namen vorhanden ist, wird es überschrieben. Zusätzliche Daten können in das Geheimnis eingeschlossen werden, wenn sie vom Erweiterungstresor unterstützt werden.
Der Standardparametersatz akzeptiert ein SecureString-Objekt . Wenn Sie den Befehl ausführen, ohne den Geheimniswert anzugeben, werden Sie vom Cmdlet aufgefordert, einen SecureString-Wert 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 Geheimnis namens Secret1
mit dem Nur-Text-Wert hinzugefügt SecretValue
. Da kein Tresorname angegeben wurde, wird das Geheimnis dem Standardtresor des aktuellen Benutzers hinzugefügt. Get-Secret
zeigt, dass das Geheimnis 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 Tresor ein Geheimnis mit dem LocalStore
Namen Secret2
hinzugefügt. Da kein Geheimniswert angegeben wurde, fordert das Cmdlet zur Eingabe eines SecureString-Werts auf. Die Konsole blendet den Zeichenfolgenwert während der Eingabe aus. Get-Secret
zeigt, dass das Geheimnis 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 Tresor ein Geheimnis mit dem Namen TargetSecret
hinzugefügt, dessen LocalStore
Metadaten das Ablaufdatum des Geheimnisses angeben. Get-SecretInfo
ruft die Metadaten für das neu erstellte Geheimnis 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 LocalStore2
Tresor ein Geheimnis mit dem Namen PublishSecret
mit zusätzlichen Metadaten hinzugefügt.
Der Tresor LocalStore2
unterstützt jedoch keine Geheimmetadaten, und der Vorgang gibt einen Fehler zurück.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Metadata
Gibt eine Hashtabelle an, die Schlüssel-Wert-Paare enthält, die dem Geheimnis 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 einem der folgenden Typen entsprechen:
- string
- int
- DateTime
Metadaten werden nicht sicher in einem Tresor gespeichert. Metadaten dürfen keine vertraulichen Informationen enthalten.
Type: | Hashtable |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Gibt den Namen des hinzuzufügenden oder zu aktualisierenden Geheimnisses an. Wildcardzeichen (*
) sind nicht zulässig.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoClobber
Bewirkt, dass der Befehl einen Fehler zurückgibt, wenn bereits ein Geheimnis mit demselben Namen im Tresor vorhanden ist. Standardmäßig aktualisiert dieses Cmdlet das Geheimnis mit dem neuen Wert, wenn er bereits vorhanden ist.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Secret
Gibt den Wert des Geheimnisses an. Das -Objekt muss einer der unterstützten Typen sein:
- Byte[]
- String
- SecureString
- PSCredential
- Hashtable
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecretInfo
Gibt ein SecretInformation-Objekt an, das ein von Get-SecretInfo
zurückgegebenes gespeichertes Geheimnis beschreibt.
Dies ermöglicht das Kopieren von Geheimnissen aus einem Erweiterungstresor in einen anderen.
Type: | SecretInformation |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecureStringSecret
Gibt den Wert des Geheimnisses als SecretString-Objekt an.
Type: | SecureString |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Vault
Gibt den Namen des Tresors an, in dem das Geheimnis hinzugefügt oder aktualisiert werden soll. Wildcardzeichen (*
) sind nicht zulässig. Standardmäßig wird das Geheimnis im Standardtresor des aktuellen Benutzers hinzugefügt oder aktualisiert.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Ausgaben
None
Hinweise
Wenn Sie mit dem Parameter Name ausführenSet-Secret
, um den Namen des Geheimnisses anzugeben, ruft GetSecret()
das Cmdlet auf, das von der Tresorerweiterung implementiert wird. Set-Secret
durchläuft den vom Benutzer bereitgestellten Namen. Die Tresorerweiterung sucht das Geheimnis nach diesem Namen. Wenn GetGecret()
eine Übereinstimmung zurückgibt, überschreibt das Geheimnis, es sei denn, Set-Secret
Sie verwenden den NoClobber-Parameter . Die Tresorerweiterung schreibt immer die empfangenen geheimen Informationen.
Es liegt an der Implementierung der Tresorerweiterung, zu entscheiden, ob ein Vergleich zwischen Groß- und Kleinschreibung für den Namen verwendet werden soll. Bei Geheimnisnamen im Microsoft.PowerShell.SecretStore-Erweiterungstresor wird beispielsweise die Groß-/Kleinschreibung nicht beachtet. Wenn sich der Name, an den Sie übergeben, Set-Secret
nur nach Groß-/Kleinschreibung mit dem Namen eines vorhandenen Geheimnisses in einem SecretStore-Tresor unterscheidet, wird der Name mit dem von Ihnen angegebenen neuen Wert überschrieben.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für