#powershell
Вопрос:
Я пытаюсь более подробно ознакомиться с использованием несколько нового модуля PowerShell Microsoft.PowerShell.SecretManagement
, используя модуль Microsoft.PowerShell.SecretStore
расширения хранилища.
У меня возникли проблемы с тем, чтобы понять, как зарегистрировать секретный магазин без пароля с самого начала. АКА, вам вообще не нужно вводить пароль.
Вот что я пытаюсь сделать:
Установите модули:
Install-Module Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore
Зарегистрируйте новый SecretVault, используя модуль SecretStore по умолчанию:
Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Теперь вот где я сталкиваюсь с проблемами…
Если я попробую это:
Set-SecretStoreConfiguration -Interaction None -Authentication None
В итоге я получаю вот это:
PS C:> Set-SecretStoreConfiguration -Interaction None -Authentication None
Confirm
Are you sure you want to perform this action?
Performing the operation "Changes local store configuration" on target "SecretStore module local store".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y
Vault Microsoft.PowerShell.SecretStore requires a password.
Enter password:
****
A password is no longer required for the local store configuration.
To complete the change please provide the current password.
Enter password:
****
PS C:>
Я не могу сказать, делаю ли я что-то не так, или мне следует представить это как ошибку? Для него не имеет смысла запрашивать у меня пароль, если я говорю, что он ему не нужен, а затем прошу меня предоставить тот же пароль, чтобы удалить его.
Если это не ошибка, то единственное, о чем я могу думать, это то, что он все еще использует пароль за кулисами для процесса шифрования/дешифрования, и настройка Authentication
больше касается использования хранилища, но сам пароль все еще используется для шифрования/дешифрования.
Я также попытался передать параметры регистрации по умолчанию, чтобы Register-SecretVault
это выглядело так:
-VaultParameters @{Authentication='None'; Interaction='None'}
И для этого все еще требовался пароль, на самом деле, он даже не применил настройки после регистрации, похоже, он их полностью игнорирует:
PS C:> Register-SecretVault -ModuleName Microsoft.PowerShell.SecretStore -Name SecretStore -VaultParameters @{Authentication='None'; Interaction='None'} -DefaultVault
PS C:> Set-Secret -Name Testing -Secret 'Testing123'
Creating a new SecretStore vault. A password is required by the current store configuration.
Enter password:
****
Enter password again for verification:
****
PS C:> Get-SecretStoreConfiguration
Scope Authentication PasswordTimeout Interaction
----- -------------- --------------- -----------
CurrentUser Password 900 Prompt
PS C:>
Ответ №1:
Вы можете использовать $null
для установки None
значения параметров хранилища. Например:
# To register the vault with Interaction amp; Authentication values to None
Register-SecretVault -Name test-secret-store -VaultParameters @{Authentication=$null; Interaction=$null} -ModuleName Microsoft.PowerShell.SecretStore
# Create a secret
Set-Secret -Name test-secret -Secret "my secret password" -Vault test-secret-store
# Get the secret value
Get-Secret -Name test-secret -AsPlainText -Vault test-secret-store
Чтобы получить дополнительную информацию о $null, вы можете прочитать эту статью.