Wprowadzenie do modułu SecretStore

Moduły SecretManagement i SecretStore są dostępne w Galeria programu PowerShell i można je zainstalować przy użyciu poleceń PowerShellGet.

# Install with PowerShellGet 2.x
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module Microsoft.PowerShell.SecretStore

# Install with PSResourceGet 1.x
Install-PSResource Microsoft.PowerShell.SecretManagement
Install-PSResource Microsoft.PowerShell.SecretStore

Po zainstalowaniu modułów możesz załadować moduły i rozpocząć używanie lub tworzenie nowych wpisów tajnych.

Import-Module Microsoft.PowerShell.SecretManagement
Import-Module Microsoft.PowerShell.SecretStore

Tworzenie magazynu i dodawanie wpisu tajnego

Najpierw musisz zarejestrować magazyn. Parametr Name jest przyjazną nazwą i może być dowolnym prawidłowym ciągiem.

Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

Parametr DefaultVault sprawia, że jest to magazyn domyślny.

Teraz możesz utworzyć wpis tajny.

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

W tym przykładzie przekazuje ciąg w postaci zwykłego tekstu dla wartości wpisu tajnego. Wartość wpisu tajnego może być jedną z pięciu obsługiwanych typów:

  • byte[]
  • Ciąg
  • Securestring
  • PsCredential
  • Hashtable

Przy pierwszym uzyskiwaniu dostępu do magazynu należy podać hasło dla nowego magazynu. To hasło służy do blokowania i odblokowywania magazynu.

Vault SecretStore requires a password.
Enter password:
********
Enter password again for verification:
********

Uruchom polecenie Get-Secret , aby pobrać wpis tajny. Użycie przełącznika AsPlainText zwraca wpis tajny jako niezaszyfrowany ciąg.

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

Aby uzyskać listę wszystkich wpisów tajnych, możesz uruchomić następujące polecenie:

PS> Get-SecretInfo

Name       Type   VaultName
----       ----   ---------
TestSecret String SecretStore

Uwagi

Po uruchomieniu Set-Secret polecenia z parametrem Name w celu określenia nazwy wpisu tajnego polecenie cmdlet wywołuje GetSecret() polecenie cmdlet implementowane przez rozszerzenie magazynu. Set-Secret przekazuje nazwę podaną przez użytkownika. Rozszerzenie magazynu wyszukuje wpis tajny o tej nazwie. Jeśli GetGecret() zwraca dopasowanie, zastępuje wpis tajny, Set-Secret chyba że używasz parametru NoClobber . Rozszerzenie magazynu zawsze zapisuje informacje o wpisie tajnym, które otrzymuje.

Zależy to od implementacji rozszerzenia magazynu, aby zdecydować, czy należy użyć porównania z uwzględnieniem wielkości liter w nazwie. Na przykład nazwy wpisów tajnych w magazynie rozszerzenia Microsoft.PowerShell.SecretStore są bez uwzględniania wielkości liter. Jeśli przekazana nazwa Set-Secret różni się tylko wielkością liter od nazwy istniejącego wpisu tajnego w magazynie SecretStore, nazwa zostanie zastąpiona nową wartością.