Zasoby DSCDSC Resources

Dotyczy programu Windows PowerShell 4,0 i jego konfiguracji.Applies to Windows PowerShell 4.0 and up.

OmówienieOverview

Zasoby konfiguracji żądanego stanu (DSC) zapewniają bloki konstrukcyjne dla konfiguracji DSC.Desired State Configuration (DSC) Resources provide the building blocks for a DSC configuration. Zasób uwidacznia właściwości, które można skonfigurować (schemat) i zawiera funkcje skryptów programu PowerShell, które są używane przez lokalne Configuration Manager (LCM) do "przydzielenia".A resource exposes properties that can be configured (schema) and contains the PowerShell script functions that the Local Configuration Manager (LCM) calls to "make it so".

Zasób może modelować coś jako pliku lub jako ustawienia serwera IIS.A resource can model something as generic as a file or as specific as an IIS server setting. Grupy podobne do tych zasobów są łączone w moduł DSC, który organizuje wszystkie wymagane pliki w programie do struktury, która jest przenośna i zawiera metadane w celu określenia sposobu, w jaki zasoby są przeznaczone do użycia.Groups of like resources are combined in to a DSC Module, which organizes all the required files in to a structure that is portable and includes metadata to identify how the resources are intended to be used.

Każdy zasób zawiera schemat *, który określa składnię wymaganą do użycia zasobu w konfiguracji.Each resource has a *schema that determines the syntax needed to use the resource in a Configuration. Schemat zasobu można zdefiniować w następujący sposób:A resource's schema can be defined in the following ways:

  • Schema.Mof plik: większość zasobów definiuje ich schemat w schema.mof pliku przy użyciu Managed Object Format.Schema.Mof file: Most resources define their schema in a schema.mof file, using Managed Object Format.
  • <Resource Name>.schema.psm1 plik: zasoby złożone definiują schemat w <ResourceName>.schema.psm1 pliku przy użyciu bloku parametrów.<Resource Name>.schema.psm1 file: Composite Resources define their schema in a <ResourceName>.schema.psm1 file using a Parameter Block.
  • <Resource Name>.psm1 plik: zasoby DSC oparte na klasach definiują ich schemat w definicji klasy.<Resource Name>.psm1 file: Class based DSC resources define their schema in the class definition. Elementy składni są oznaczane jako właściwości klasy.Syntax items are denoted as Class properties. Aby uzyskać więcej informacji, zobacz about_Classes.For more information, see about_Classes.

Aby pobrać składnię dla zasobu DSC, należy użyć polecenia cmdlet Get-DSCResource z parametrem Syntax .To retrieve the syntax for a DSC resource, use the Get-DSCResource cmdlet with the Syntax parameter. To użycie jest podobne do polecenia Get-Command z parametrem Syntax w celu uzyskania składni polecenia cmdlet.This usage is similar to using Get-Command with the Syntax parameter to get cmdlet syntax. W wyświetlonym danych wyjściowych zostanie wyświetlony szablon użyty dla bloku zasobów dla określonego zasobu.The output you see will show the template used for a resource block for the resource you specify.

Get-DscResource -Syntax Service

Widoczne dane wyjściowe powinny być podobne do danych wyjściowych poniżej, chociaż Składnia tego zasobu może ulec zmianie w przyszłości.The output you see should be similar to the output below, though this resource's syntax could change in the future. Podobnie jak w przypadku składni polecenia cmdlet, klucze widoczne w nawiasach kwadratowych są opcjonalne.Like cmdlet syntax, the keys seen in square brackets, are optional. Typy określają typ danych, których oczekuje każdy klucz.The types specify the type of data each key expects.

Uwaga

Klucz zagwarantowania jest opcjonalny, ponieważ jego wartość domyślna to "obecny".The Ensure key is optional because it defaults to "Present".

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

Uwaga

W programie PowerShell w wersji poniżej 7,0 program nie Get-DscResource znajduje zasobów DSC opartych na klasie.In PowerShell versions below 7.0, Get-DscResource does not find Class based DSC resources.

W ramach konfiguracji blok zasobów usługi może wyglądać następująco, aby upewnić się, że usługa buforu jest uruchomiona.Inside a Configuration, a Service resource block might look like this to Ensure that the Spooler service is running.

Uwaga

Przed użyciem zasobu w konfiguracji należy zaimportować go przy użyciu polecenia Import-DSCResource.Before using a resource in a Configuration, you must import it using Import-DSCResource.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as long as it is of type [String] as indicated by the schema.
        Service "Spooler:Running"
        {
            Name = "Spooler"
            State = "Running"
        }
    }
}

Konfiguracje mogą zawierać wiele wystąpień tego samego typu zasobu.Configurations can contain multiple instances of the same resource type. Każde wystąpienie musi mieć unikatową nazwę.Each instance must be uniquely named. W poniższym przykładzie zostanie dodany drugi blok zasobów usługi w celu skonfigurowania usługi DHCP.In the following example, a second Service resource block is added to configure the "DHCP" service.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as long as it is of type [String] as indicated by the schema.
        Service "Spooler:Running"
        {
            Name = "Spooler"
            State = "Running"
        }

        # To configure a second service resource block, add another Service resource block and use a unique name.
        Service "DHCP:Running"
        {
            Name = "DHCP"
            State = "Running"
        }
    }
}

Uwaga

Począwszy od programu PowerShell 5,0, dodano funkcję IntelliSense dla DSC.Beginning in PowerShell 5.0, IntelliSense was added for DSC. Ta nowa funkcja umożliwia użycie obszaru kart i Rob + Space do autouzupełniania nazw kluczy.This new feature allows you to use TAB and Ctr+Space to auto-complete key names.

Zasób IntelliSense przy użyciu kończenia karty

Typy zasobówTypes of resources

System Windows jest dostarczany z wbudowanymi zasobami, a w systemie Linux dostępne są zasoby dotyczące systemu operacyjnego.Windows comes with built in resources and Linux has OS specific resources. Istnieją zasoby dotyczące zależności między węzłami, zasobami zarządzania pakietami,a także zasobami należącymi do społeczności i nimi.There are resources for cross-node dependencies, package management resources, as well ascommunity owned and maintained resources. Możesz użyć powyższych kroków, aby określić składnię tych zasobów i sposób ich używania.You can use the above steps to determine the syntax of these resources and how to use them. Strony, które obsługują te zasoby, zostały zarchiwizowane w obszarze odwołanie.The pages that serve these resources have been archived under Reference.

Wbudowane zasoby systemu WindowsWindows built-in resources

Zasoby zależności między węzłamiCross-Node dependency resources

Zasoby Zarządzanie pakietamiPackage Management resources

Zasoby systemu LinuxLinux resources