موارد DSC

نظرة عامة

توفر موارد DSC واجهة موحدة لإدارة إعدادات النظام. يحدد مورد DSC الخصائص التي يمكنك إدارتها ويحتوي على التعليمات البرمجية PowerShell التي Invoke-DscResource تستدعي "جعله كذلك".

يمكن لمورد DSC تصميم شيء عام كملف أو محدد مثل إعداد خادم IIS. يتم دمج مجموعات موارد DSC ذات الصلة في وحدات PowerShell النمطية. توفر الوحدات النمطية حزمة محمولة ومصدرة لموارد DSC وتتضمن بيانات التعريف والوثائق عنها.

يحتوي كل مورد DSC على مخطط يحدد بناء الجملة المطلوب لاستخدام مورد DSC مع Invoke-DscResourceأو في تكوين. يتم تعريف مخطط مورد DSC بالطرق التالية:

  • <Resource Name>.psm1 الملف: تحدد موارد DSC المستندة إلى الفئة مخططها في تعريف الفئة. يتم توضيح عناصر بناء الجملة كخصائص فئة. لمزيد من المعلومات، راجع about_Classes.
  • Schema.Mof ملف: تحدد موارد DSC المستندة إلى MOF مخططها في schema.mof ملف، باستخدام تنسيق الكائن المدار.

لاسترداد بناء الجملة لمورد DSC، استخدم الأمر Cmdlet Get-DSCResource مع معلمة بناء الجملة . يشبه هذا استخدام Get-Command مع معلمة بناء الجملة للحصول على بناء جملة cmdlet. يظهر الإخراج القالب المستخدم لكتلة مورد DSC في تكوين DSC.

Get-DscResource -Syntax Service
Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DesktopInteract = [bool]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupTimeout = [UInt32]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Ignore | Running | Stopped }]
    [TerminateTimeout = [UInt32]]
}

مثل بناء جملة cmdlet، تكون المفاتيح الموجودة بين أقواس مربعة اختيارية. تحدد الأنواع نوع البيانات الذي يتوقعه كل مفتاح.

للتأكد من Spooler تشغيل الخدمة:

$SharedDscParameters = @{
    Name = 'Service'
    ModuleName = 'PSDscResources'
    Property = @{
        Name  = 'Spooler'
        State = 'Running'
    }
}
$TestResult = Invoke-DscResource -Method Test @SharedDscParameters
if ($TestResult.InDesiredState) {
    Write-Host -ForegroundColor Cyan -Object 'Already in desired state.'
} else {
    Write-Host -ForegroundColor Magenta -Object 'Enforcing desired state.'
    Invoke-DscResource -Method Set @SharedDscParameters
}

$SharedDscParameters المتغير هو جدول تجزئة يحتوي على المعلمات المستخدمة عند استدعاء أساليبالاختبار وتعيين المورد باستخدام Invoke-DscResource. الاستدعاء الأول لاستخدام Invoke-DscResource أسلوب الاختبار للتحقق مما إذا كانت Spooler الخدمة قيد التشغيل وتخزين النتيجة في $TestResult المتغير.

تعتمد الخطوة التالية على ما إذا كانت الخدمة بالفعل في الحالة المطلوبة. من أفضل الممارسات التحقق دائما من الحالة المطلوبة قبل فرض واستدعاء أسلوب Set فقط عند الحاجة. في المثال، يكتب البرنامج النصي رسالة إلى وحدة التحكم حول ما إذا كان مورد DSC في الحالة المطلوبة. بعد ذلك، إذا لم تكن الخدمة قيد التشغيل، فإنها تستدعي Invoke-DscResource الأسلوب Set لفرض الحالة المطلوبة.