Udostępnij przez


Set-Secret

Dodaje wpis tajny do zarejestrowanego magazynu SecretManagement.

Składnia

SecureStringParameterSet (Domyślna)

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>]

Opis

To polecenie cmdlet dodaje wartość wpisu tajnego według nazwy do magazynu. Jeśli nazwa magazynu nie zostanie określona, wpis tajny zostanie dodany do magazynu domyślnego. Jeśli wpis tajny o tej nazwie istnieje, zostanie zastąpiony. Dodatkowe dane mogą być dołączane do wpisu tajnego, jeśli są obsługiwane przez magazyn rozszerzeń.

Domyślny zestaw parametrów przyjmuje obiekt SecureString . Jeśli polecenie zostanie uruchomione bez określania wartości wpisu tajnego, polecenie cmdlet wyświetli monit o wprowadzenie elementu SecureString. Tekst ciągu nie jest widoczny w konsoli programu.

Przykłady

Przykład 1

Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString

W tym przykładzie dodano wpis tajny o nazwie Secret1 ze zwykłą wartością SecretValuetekstową . Ponieważ nie określono nazwy magazynu, wpis tajny jest dodawany do domyślnego magazynu bieżącego użytkownika. Get-Secret pokazuje, że wpis tajny został dodany.

Przykład 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

W tym przykładzie dodano wpis tajny o nazwie Secret2 do magazynu LocalStore . Ponieważ nie podano żadnej wartości wpisu tajnego, polecenie cmdlet monituje o wartość SecureString . Konsola ukrywa wartość ciągu podczas jej wpisywania. Get-Secret pokazuje, że wpis tajny został dodany.

Przykład 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]}

W tym przykładzie do magazynu dodawany jest wpis tajny o nazwie TargetSecretLocalStore z metadanymi wskazującymi datę wygaśnięcia wpisu tajnego. Get-SecretInfo Pobiera metadane dla nowo utworzonego wpisu tajnego.

Przykład 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.

W tym przykładzie dodano wpis tajny o nazwie PublishSecret do LocalStore2 magazynu z dodatkowymi metadanymi. Jednak magazyn LocalStore2 nie obsługuje metadanych wpisów tajnych, a operacja zwraca błąd.

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Metadata

Określa tabelę skrótów zawierającą pary klucz-wartość, które mają zostać skojarzone z wpisem tajnym w magazynie. Określony magazyn rozszerzenia może nie obsługiwać metadanych wpisów tajnych. Jeśli magazyn nie obsługuje metadanych, operacja zakończy się niepowodzeniem i zwróci błąd. Wartości wszystkich metadanych w tabeli skrótów muszą należeć do jednego z następujących typów:

  • ciąg
  • int
  • Data i czas

Metadane nie są bezpiecznie przechowywane w magazynie. Metadane nie powinny zawierać poufnych informacji.

Właściwości parametru

Typ:Hashtable
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SecureStringParameterSet
Position:1
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False
ObjectParameterSet
Position:1
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Name

Określa nazwę wpisu tajnego, który ma zostać dodany lub zaktualizowany. Symbole wieloznaczne (*) są niedozwolone.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SecureStringParameterSet
Position:0
Obowiązkowy:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False
ObjectParameterSet
Position:0
Obowiązkowy:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-NoClobber

Powoduje, że polecenie zwraca błąd, jeśli wpis tajny o tej samej nazwie już istnieje w repozytorium. Domyślnie to polecenie cmdlet aktualizuje wpis tajny przy użyciu nowej wartości, jeśli już istnieje.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Secret

Określa wartość wpisu tajnego. Obiekt musi być jednym z obsługiwanych typów:

  • Bajt[]
  • String
  • SecureString
  • PSCredential
  • Tabela skrótów

Właściwości parametru

Typ:Object
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

ObjectParameterSet
Position:Named
Obowiązkowy:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SecretInfo

Określa obiekt SecretInformation opisujący przechowywany klucz tajny zwracany przez Get-SecretInfo. Umożliwia to kopiowanie wpisów tajnych z jednego magazynu rozszerzeń do innego.

Właściwości parametru

Typ:Microsoft.PowerShell.SecretManagement.SecretInformation
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SecretInfoParameterSet
Position:Named
Obowiązkowy:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SecureStringSecret

Określa wartość wpisu tajnego jako obiekt SecretString .

Właściwości parametru

Typ:SecureString
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SecureStringParameterSet
Position:Named
Obowiązkowy:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Vault

Określa nazwę magazynu, w którym ma zostać dodany lub zaktualizowany wpis tajny. Symbole wieloznaczne (*) są niedozwolone. Domyślnie wpis tajny jest dodawany lub aktualizowany w domyślnym magazynie bieżącego użytkownika.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SecureStringParameterSet
Position:2
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False
ObjectParameterSet
Position:2
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie został uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

Hashtable

Dane wyjściowe

None

Uwagi

Po uruchomieniu Set-Secret z parametrem Name w celu określenia nazwy wpisu tajnego wywołania GetSecret() polecenia cmdlet są implementowane przez rozszerzenie magazynu. Set-Secret przechodzi przez nazwę podaną przez użytkownika. Rozszerzenie magazynu wyszukuje wpis tajny o tej nazwie. Jeśli GetSecret() zwraca dopasowanie, zastępuje wpis tajny, Set-Secret chyba że użyjesz parametru NoClobber . Rozszerzenie magazynu zawsze zapisuje otrzymane informacje tajne.

To zależy od implementacji rozszerzenia magazynu, aby zdecydować, czy użyć porównania z uwzględnieniem wielkości liter w nazwie. Na przykład w nazwach wpisów tajnych w magazynie rozszerzenia Microsoft.PowerShell.SecretStore nie jest rozróżniana wielkość liter. Jeśli nazwa, do Set-Secret której przekazujesz, różni się tylko wielkością liter od nazwy istniejącego wpisu tajnego w magazynie sekretów, nazwa zostanie zastąpiona nową podaną wartością.