Konfiguracje DSC
Dotyczy: Windows PowerShell 4.0, Windows PowerShell 5.0
Konfiguracje DSC to skrypty programu PowerShell definiujące specjalny typ funkcji. Aby zdefiniować konfigurację, należy użyć słowa kluczowego Konfiguracja programu PowerShell.
Configuration MyDscConfiguration {
Node "TEST-PC1" {
WindowsFeature MyFeatureInstance {
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance {
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Zapisz skrypt jako .ps1
plik.
Składnia konfiguracji
Skrypt konfiguracji składa się z następujących części:
- Blok Konfiguracja . Jest to najbardziej zewnętrzny blok skryptu. Można ją zdefiniować przy użyciu słowa kluczowego Configuration i podać nazwę. W takim przypadku nazwa konfiguracji to
MyDscConfiguration
. - Co najmniej jeden blok węzła . Definiują one konfigurowane węzły (komputery lub maszyny wirtualne).
W powyższej konfiguracji istnieje jeden blok węzła , który jest przeznaczony dla komputera o nazwie
TEST-PC1
. Blok Node może akceptować wiele nazw komputerów. - Co najmniej jeden blok zasobów. W tym miejscu konfiguracja ustawia właściwości konfigurowanych zasobów. W tym przypadku istnieją dwa bloki zasobów, z których każdy wywołuje zasób WindowsFeature .
Uwaga
Zasób DSC windowsFeature jest dostępny tylko na komputerach z systemem Windows Server. W przypadku komputerów z systemem operacyjnym klienta, na przykład Windows 11, należy zamiast tego użyć funkcji WindowsOptionalFeature. Aby uzyskać więcej informacji, zobacz sekcję "WindowsOptionalFeature" w dokumentacji psDscResources.
W bloku Konfiguracja można wykonać dowolne czynności, które normalnie można wykonać w funkcji programu PowerShell. W poprzednim przykładzie, jeśli nie chcesz trwale kodować nazwy komputera docelowego w konfiguracji, możesz dodać parametr nazwy węzła.
W tym przykładzie należy określić nazwę węzła, przekazując go jako parametr ComputerName podczas kompilowania konfiguracji. Nazwa jest domyślnie ustawiona na localhost
.
Configuration MyDscConfiguration
{
param
(
[string[]]$ComputerName='localhost'
)
Node $ComputerName
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Blok Node może również akceptować wiele nazw komputerów. W powyższym przykładzie można użyć parametru -ComputerName
lub przekazać rozdzielaną przecinkami listę komputerów bezpośrednio do bloku Node .
MyDscConfiguration -ComputerName "localhost", "Server01"
Podczas określania listy komputerów do bloku Node z poziomu konfiguracji należy użyć notacji tablicowej.
Configuration MyDscConfiguration
{
Node @('localhost', 'Server01')
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Kompilowanie konfiguracji
Zanim będzie można wprowadzić konfigurację, należy ją skompilować w dokumencie MOF. W tym celu należy wywołać konfigurację tak, jak wywołasz funkcję programu PowerShell. Ostatni wiersz przykładu zawierający tylko nazwę konfiguracji, wywołuje konfigurację.
Uwaga
Aby wywołać konfigurację, funkcja musi znajdować się w zakresie globalnym (podobnie jak w przypadku dowolnej innej funkcji programu PowerShell). Można to zrobić za pomocą skryptu "dot-sourcing" lub uruchamiając skrypt konfiguracji za pomocą klawisza F5 lub klikając przycisk Uruchom skrypt w środowisku ISE. Aby dot-source skryptu, uruchom polecenie . .\myConfig.ps1
, gdzie myConfig.ps1
jest nazwą pliku skryptu, który zawiera konfigurację.
Po wywołaniu konfiguracji:
- Rozwiązuje wszystkie zmienne
- Tworzy folder w bieżącym katalogu o takiej samej nazwie jak konfiguracja.
- Tworzy plik o nazwie NodeName.mof w nowym katalogu, gdzie NodeName jest nazwą węzła docelowego konfiguracji. Jeśli istnieje więcej niż jeden węzeł, zostanie utworzony plik MOF dla każdego węzła.
Uwaga
Plik MOF zawiera wszystkie informacje o konfiguracji węzła docelowego. Z tego powodu ważne jest, aby zachować bezpieczeństwo. Aby uzyskać więcej informacji, zobacz Zabezpieczanie pliku MOF.
Skompilowanie pierwszej konfiguracji powyżej powoduje następującą strukturę folderów:
. .\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
Jeśli konfiguracja przyjmuje parametr, tak jak w drugim przykładzie, musi to być podane w czasie kompilacji. Oto jak to wygląda:
. .\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
Korzystanie z nowych zasobów w konfiguracji
Jeśli uruchomiono poprzednie przykłady, być może zauważysz, że używasz zasobu bez jawnego importowania go. Obecnie rozszerzenie DSC jest dostarczane z 12 zasobami w ramach modułu PSDesiredStateConfiguration.
Polecenie cmdlet Get-DscResource może służyć do określenia, jakie zasoby są zainstalowane w systemie i które są dostępne do użycia przez LCM.
Po umieszczeniu tych modułów i $env:PSModulePath
ich prawidłowym rozpoznaniu przez polecenie Get-DscResource nadal muszą zostać załadowane w ramach konfiguracji.
Import-DscResource to dynamiczne słowo kluczowe, które można rozpoznać tylko w bloku konfiguracji , nie jest to polecenie cmdlet. Polecenie Import-DscResource obsługuje dwa parametry:
- ModuleName to zalecany sposób używania polecenia Import-DscResource. Akceptuje on nazwę modułu, który zawiera zasoby do zaimportowania (a także tablicę ciągów nazw modułów).
- Nazwa to nazwa zasobu do zaimportowania. Nie jest to przyjazna nazwa zwracana jako "Name" przez polecenie Get-DscResource, ale nazwa klasy używana podczas definiowania schematu zasobu (zwrócona jako ResourceType przez Get-DscResource).
Aby uzyskać więcej informacji na temat korzystania z usługi Import-DSCResource
, zobacz Using Import-DSCResource (Używanie polecenia Import-DSCResource)
Różnice w programie PowerShell w wersji 4 i w wersji 5
Istnieją różnice w tym, gdzie zasoby DSC muszą być przechowywane w programie PowerShell 4.0. Aby uzyskać więcej informacji, zobacz Lokalizacja zasobu.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla