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-PC1
bir 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 localhost
gö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-DSCResource
hakkı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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin