DSC Yapılandırmaları

Şunlar için geçerlidir: Windows PowerShell 4.0, Windows PowerShell 5.0

DSC yapılandırmaları, özel bir işlev türü tanımlayan PowerShell betikleridir. Bir yapılandırma tanımlamak için PowerShell anahtar sözcüğü Yapılandırması'nı kullanırsınız.

Configuration MyDscConfiguration {
    Node "TEST-PC1" {
        WindowsFeature MyFeatureInstance {
            Ensure = 'Present'
            Name = 'RSAT'
        }
        WindowsFeature My2ndFeatureInstance {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}
MyDscConfiguration

Betiği dosya olarak .ps1 kaydedin.

Yapılandırma söz dizimi

Yapılandırma betiği aşağıdaki bölümlerden oluşur:

  • Yapılandırma bloğu. Bu en dıştaki betik bloğudur. Bunu, Configuration anahtar sözcüğünü kullanarak ve bir ad sağlayarak tanımlarsınız. Bu durumda, yapılandırmanın adı şeklindedir MyDscConfiguration.
  • Bir veya daha fazla Düğüm bloğu. Bunlar, yapılandırdığınız düğümleri (bilgisayarlar veya VM'ler) tanımlar. Yukarıdaki yapılandırmada adlı TEST-PC1bir bilgisayarı hedefleyen bir Node bloğu vardır. Düğüm bloğu birden çok bilgisayar adını kabul edebilir.
  • Bir veya daha fazla kaynak bloğu. Burası yapılandırmanın yapılandırdığı kaynakların özelliklerini ayarladığı yerdir. Bu durumda, her biri WindowsFeature kaynağını çağıran iki kaynak bloğu vardır.

Not

WindowsFeature DSC Kaynağı yalnızca Windows Server bilgisayarlarda kullanılabilir. Windows 11 gibi istemci işletim sistemine sahip bilgisayarlar için bunun yerine WindowsOptionalFeature kullanmanız gerekir. Daha fazla bilgi için PSDscResources belgelerinin "WindowsOptionalFeature" bölümüne bakın.

Yapılandırma bloğu içinde, PowerShell işlevinde normalde yapabileceğiniz her şeyi yapabilirsiniz. Önceki örnekte, yapılandırmada hedef bilgisayarın adını sabit olarak kodlamak istemiyorsanız düğüm adı için bir parametre ekleyebilirsiniz.

Bu örnekte, yapılandırmayı derlerken düğümü ComputerName parametresi olarak geçirerek düğümün adını belirtirsiniz. Ad varsayılan olarak olarak localhostgösterilir.

Configuration MyDscConfiguration
{
    param
    (
        [string[]]$ComputerName='localhost'
    )

    Node $ComputerName
    {
        WindowsFeature MyFeatureInstance
        {
            Ensure = 'Present'
            Name = 'RSAT'
        }

        WindowsFeature My2ndFeatureInstance
        {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}

MyDscConfiguration

Düğüm bloğu birden çok bilgisayar adını da kabul edebilir. Yukarıdaki örnekte parametresini -ComputerName kullanabilir veya bilgisayarların virgülle ayrılmış listesini doğrudan Node bloğuna geçirebilirsiniz.

MyDscConfiguration -ComputerName "localhost", "Server01"

Düğüm bloğuna bir bilgisayar listesi belirtirken, yapılandırmanın içinden dizi gösterimini kullanmanız gerekir.

Configuration MyDscConfiguration
{
    Node @('localhost', 'Server01')
    {
        WindowsFeature MyFeatureInstance
        {
            Ensure = 'Present'
            Name = 'RSAT'
        }

        WindowsFeature My2ndFeatureInstance
        {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}

MyDscConfiguration

Yapılandırmayı derleme

Bir yapılandırmayı hayata geçirmeden önce bunu bir MOF belgesine derlemeniz gerekir. Bunu, PowerShell işlevini çağıracağınız gibi yapılandırmayı çağırarak yaparsınız. Yalnızca yapılandırmanın adını içeren örneğin son satırı yapılandırmayı çağırır.

Not

Bir yapılandırmayı çağırmak için işlevin genel kapsamda olması gerekir (diğer Tüm PowerShell işlevlerinde olduğu gibi). Bunun için betiği "nokta kaynağını belirleme" veya F5 kullanarak yapılandırma betiğini çalıştırma veya ISE'de Betiği Çalıştır düğmesine tıklama gibi işlemler gerçekleştirebilirsiniz. Betiğin kaynağını belirtmek için komutunu . .\myConfig.ps1 çalıştırın. Burada myConfig.ps1 , yapılandırmanızı içeren betik dosyasının adıdır.

Yapılandırmayı çağırdığınızda:

  • Tüm değişkenleri çözümler
  • Geçerli dizinde yapılandırmayla aynı ada sahip bir klasör oluşturur.
  • Yeni dizinde NodeName.mof adlı bir dosya oluşturur; burada NodeName , yapılandırmanın hedef düğümünün adıdır. Birden fazla düğüm varsa, her düğüm için bir MOF dosyası oluşturulur.

Not

MOF dosyası, hedef düğüm için tüm yapılandırma bilgilerini içerir. Bu nedenle, güvenli tutmak önemlidir. Daha fazla bilgi için bkz . MOF dosyasının güvenliğini sağlama.

Yukarıdaki ilk yapılandırmanın derlenmesi aşağıdaki klasör yapısına neden olur:

. .\MyDscConfiguration.ps1
MyDscConfiguration
    Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/23/2015   4:32 PM           2842 localhost.mof

Yapılandırma ikinci örnekte olduğu gibi bir parametre alırsa, bunun derleme zamanında sağlanması gerekir. Şöyle görünür:

. .\MyDscConfiguration.ps1
MyDscConfiguration -ComputerName 'MyTestNode'
    Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/23/2015   4:32 PM           2842 MyTestNode.mof

Yapılandırmanızda yeni kaynakları kullanma

Önceki örnekleri çalıştırdıysanız, bir kaynağı açıkça içeri aktarmadan kullandığınız konusunda uyarıldığını fark etmiş olabilirsiniz. Bugün DSC, PSDesiredStateConfiguration modülünün bir parçası olarak 12 kaynakla birlikte gönderilir.

Get-DscResource cmdlet'i, sistemde hangi kaynakların yüklü olduğunu ve LCM tarafından kullanılabilecek kaynakları belirlemek için kullanılabilir. Bu modüller içine yerleştirildikten $env:PSModulePath ve Get-DscResource tarafından düzgün bir şekilde tanındıktan sonra yapılandırmanız içinde yüklenmeleri gerekir.

Import-DscResource yalnızca bir Yapılandırma bloğu içinde tanınabilen dinamik bir anahtar sözcüktür, bir cmdlet değildir. Import-DscResource iki parametreyi destekler:

  • ModuleName , Import-DscResource kullanmanın önerilen yoludur. İçeri aktarılacak kaynakları içeren modülün adını (ve modül adlarının dize dizisini) kabul eder.
  • Ad , içeri aktarılacağını kaynağın adıdır. Bu, Get-DscResource tarafından "Ad" olarak döndürülen kolay ad değil, kaynak şemasını tanımlarken kullanılan sınıf adıdır (Get-DscResource tarafından ResourceType olarak döndürülür).

kullanma Import-DSCResourcehakkında daha fazla bilgi için bkz. Import-DSCResource kullanma

PowerShell v4 ve v5 farklılıkları

DSC kaynaklarının PowerShell 4.0'da depolanması gereken konumlar arasında farklılıklar vardır. Daha fazla bilgi için bkz . Kaynak konumu.

Ayrıca Bkz.