Set-Secret
Dodaje wpis tajny do zarejestrowanego magazynu SecretManagement.
Składnia
SecureStringParameterSet (domyślnie)
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
Ważna
Zespół PowerShell zdecydował, że moduły Secret są funkcjonalnie kompletne i nie będą już aktywnie rozwijane. Moduły będą nadal wspierane w zakresie bezpieczeństwa i krytycznych poprawek błędów. Repozytorium kodu zostało zarchiwizowane.
Najnowsze opublikowane wersje to:
Charakter sekretów zasadniczo się zmienił od czasu powstania tego projektu. Metody uwierzytelniania bez hasła, takie jak klucze dostępowe, single log-on oraz federacyjne systemy uwierzytelniania, takie jak Microsoft Entra ID, biometria i sprzętowe klucze bezpieczeństwa, to przyszłość.
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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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ązkowe: | 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
Notatki
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ą.