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.
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.
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.
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.
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.
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.
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.
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.
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.
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ą.
Współpracuj z nami na GitHub
Źródło tej treści można znaleźć na GitHubie, gdzie można także tworzyć i przeglądać problemy oraz pull requesty. Więcej informacji znajdziesz w naszym przewodniku dla współautorów.