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>]

الوصف

يضيف cmdlet هذا قيمة سرية بالاسم إلى المخزن. عند عدم تحديد اسم المخزن، تتم إضافة السر إلى المخزن الافتراضي. إذا كان هناك سر بهذا الاسم، فستتم الكتابة فوقه. يمكن تضمين بيانات إضافية مع السر إذا كان مدعوما من قبل مخزن الملحق.

تأخذ مجموعة المعلمات الافتراضية كائن SecureString . إذا قمت بتشغيل الأمر دون تحديد القيمة السرية، فسيطالبك cmdlet بإدخال 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

يضيف هذا المثال بيانات سرية باسم Secret2 إلى المخزن LocalStore . نظرا لعدم توفير قيمة سرية، يطالب cmdlet بقيمة 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.

يضيف هذا المثال بيانات سرية باسم PublishSecret إلى LocalStore2 المخزن مع بيانات تعريف إضافية. ومع ذلك، لا يدعم المخزن LocalStore2 بيانات التعريف السرية وترجع العملية خطأ.

المعلمات

-Confirm

يطالبك بالتأكيد قبل تشغيل cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Metadata

يحدد Hashtable يحتوي على أزواج قيم المفاتيح لإقرانه بالبيانات السرية في المخزن. قد لا يدعم مخزن الملحق المحدد بيانات التعريف السرية. إذا كان المخزن لا يدعم بيانات التعريف، تفشل العملية وترجع خطأ. يجب أن تكون قيم أي بيانات تعريف في hashtable أحد الأنواع التالية:

  • string
  • Int
  • التاريخ والوقت

لا يتم تخزين بيانات التعريف بشكل آمن في المخزن. يجب ألا تحتوي بيانات التعريف على معلومات حساسة.

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

يؤدي الأمر إلى إرجاع خطأ إذا كان هناك سر بنفس الاسم موجود بالفعل في المخزن. بشكل افتراضي، يقوم cmdlet هذا بتحديث البيانات السرية بالقيمة الجديدة إذا كانت موجودة بالفعل.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Secret

يحدد قيمة السر. يجب أن يكون الكائن أحد الأنواع المدعومة:

  • بايت[]
  • سلسلة
  • سلسلة الأمان
  • 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

تعرض ما سيحدث عند تشغيل الأمر cmdlet. لا يتم تشغيل cmdlet.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

الإدخالات

Hashtable

المخرجات

None

ملاحظات

عند التشغيل Set-Secret باستخدام المعلمة Name لتحديد اسم السر، يستدعي GetSecret() cmdlet الذي يتم تنفيذه بواسطة ملحق المخزن. Set-Secret يمر عبر الاسم كما هو مقدم من قبل المستخدم. يبحث ملحق المخزن عن السر بهذا الاسم. إذا GetGecret() أرجعت تطابقا، Set-Secret فستبدل البيانات السرية ما لم تستخدم المعلمة NoClobber . يكتب ملحق المخزن دائما المعلومات السرية التي يتلقاها.

الأمر متروك لتنفيذ ملحق المخزن لتحديد ما إذا كان يجب استخدام مقارنة حساسة لحالة الأحرف على الاسم أم لا. على سبيل المثال، الأسماء السرية في مخزن ملحق Microsoft.PowerShell.SecretStore غير حساسة لحالة الأحرف. إذا كان الاسم الذي تمرره Set-Secret يختلف فقط حسب الحالة مع اسم سر موجود في مخزن SecretStore، يتم استبدال الاسم بالقيمة الجديدة التي قدمتها.