Set-Secret
Добавляет секрет в зарегистрированное хранилище SecretManagement.
Синтаксис
Set-Secret
[-Name] <String>
-SecureStringSecret <SecureString>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Secret
[-Name] <String>
-Secret <Object>
[[-Vault] <String>]
[[-Metadata] <Hashtable>]
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Secret
-SecretInfo <SecretInformation>
[-Vault] <String>
[-NoClobber]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Этот командлет добавляет значение секрета по имени в хранилище. Если имя хранилища не указано, секрет добавляется в хранилище по умолчанию. Если секрет с таким именем существует, он перезаписывается. Дополнительные данные могут быть включены в секрет, если они поддерживаются хранилищем расширений.
Набор параметров по умолчанию принимает объект SecureString . Если выполнить команду без указания значения секрета, командлет предложит ввести SecureString. Текст строки не отображается в консоли.
Примеры
Пример 1
Set-Secret -Name Secret1 -Secret "SecretValue"
Get-Secret -Name Secret1
System.Security.SecureString
В этом примере добавляется секрет с именем Secret1
со значением SecretValue
обычного текста . Так как имя хранилища не указано, секрет добавляется в хранилище текущего пользователя по умолчанию. Get-Secret
показывает, что секрет был добавлен.
Пример 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
В этом примере в хранилище добавляется секрет с LocalStore
именем Secret2
. Так как значение секрета не указано, командлет запрашивает значение SecureString . Консоль скрывает строковое значение по мере его ввода. Get-Secret
показывает, что секрет был добавлен.
Пример 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]}
В этом примере в хранилище добавляется LocalStore
секрет TargetSecret
с метаданными, указывающими дату окончания срока действия секрета. Get-SecretInfo
извлекает метаданные для созданного секрета.
Пример 4
$Metadata = @{ Expiration = ([datetime]::new(2022, 5, 1)) }
Set-Secret -Name PublishSecret -Secret $targetToken -Vault LocalStore2 -Metadata $Metadata
Set-Secret: Cannot store secret PublishSecret. Vault LocalStore2 does not support secret metadata.
В этом примере в хранилище добавляется LocalStore2
секрет с именем PublishSecret
с дополнительными метаданными.
Однако хранилище LocalStore2
не поддерживает метаданные секрета, и операция возвращает ошибку.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Metadata
Указывает хэш-таблице , содержащую пары "ключ-значение", которые необходимо связать с секретом в хранилище. Указанное хранилище расширений может не поддерживать метаданные секретов. Если хранилище не поддерживает метаданные, операция завершается сбоем и возвращает ошибку. Значения всех метаданных в хэш-таблицы должны быть одного из следующих типов:
- строка
- int
- DateTime
Метаданные не хранятся безопасно в хранилище. Метаданные не должны содержать конфиденциальную информацию.
Type: | Hashtable |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Указывает имя секрета для добавления или обновления. Подстановочные знаки (*
) не допускаются.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoClobber
Вызывает ошибку, если в хранилище уже существует секрет с тем же именем. По умолчанию этот командлет обновляет секрет новым значением, если он уже существует.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Secret
Задает значение секрета. Объект должен иметь один из поддерживаемых типов:
- Byte[]
- String
- Securestring
- PSCredential
- Хэш-таблица
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecretInfo
Указывает объект SecretInformation , описывающий сохраненный секрет, возвращаемый Get-SecretInfo
.
Это позволяет копировать секреты из одного хранилища расширений в другое.
Type: | SecretInformation |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecureStringSecret
Задает значение секрета в виде объекта SecretString .
Type: | SecureString |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Vault
Указывает имя хранилища, в котором добавляется или обновляется секрет. Подстановочные знаки (*
) не допускаются. По умолчанию секрет добавляется или обновляется в хранилище текущего пользователя по умолчанию.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Выходные данные
None
Примечания
При запуске Set-Secret
с параметром Name для указания имени секрета командлет вызывает GetSecret()
, который реализуется расширением хранилища. Set-Secret
передается через имя, предоставленное пользователем. Расширение хранилища ищет секрет по такому имени. Если GetGecret()
возвращает совпадение, перезаписывает секрет, Set-Secret
если не используется параметр NoClobber . Расширение хранилища всегда записывает полученные секретные сведения.
Решение о том, следует ли использовать сравнение с учетом регистра для имени, зависит от реализации расширения хранилища. Например, имена секретов в хранилище расширений Microsoft.PowerShell.SecretStore не учитывают регистр. Если имя, передаваемое Set-Secret
в , отличается только по регистру именем существующего секрета в хранилище SecretStore, имя перезаписывается новым значением.
PowerShell
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по