Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9 bis 16 Uhr):
+49 (0)201 649590-50
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Themenüberblick
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript/TypeScript
Java
Programmiersprachen/Sprachsyntax
Entwicklungswerkzeuge
Scripting
Softwareentwicklung allgemein
Datenbanken
Betriebssysteme und Virtualisierung
Microsoft Server-Produkte
Windows und Microsoft Office für Anwender
Allgemeine IT-Themen
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1019 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor-Ort oder Online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 8.0
.NET 7.0
.NET 6.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: Desired State Configuration (DSC)
Begriff
Desired State Configuration
Abkürzung
DSC
Eintrag zuletzt aktualisiert am
24.05.2023
Zur Stichwortliste unseres Lexikons
Was ist
Desired State Configuration
?
Desired State Configuration (DSC) ist ein deklaratives Verfahren zur Systemkonfiguration, das Microsoft mit der PowerShell Version 4.0 im Jahr 2013 neu eingeführt hat.
Bei klassischer scriptbasierter Konfiguration legt der Administrator die einzelnen Schritte zur Zielkonfiguration fest. Er muss in der Regel vor Beginn eines Konfigurationsschrittses prüfen, ob die Konfiguration schon vorhanden ist, bevor er sie ausführt. Auch das Rückgängigmachen einer Konfiguration muss er durch einzelne Schritte realisieren.
Bei DSC beschreibt der Administrator deklarativ nur das Ziel einer Konfiguration. DSC ist selbst in der Lage, den aktuellen Zustand zu prüfen, einen nicht notwendigen Schritt zu überspringen, eine aus (vielen) Teilen bestehende Konfiguration durchzusetzen und auch diese Schritte wieder rückgängig zu machen.
DSC wird seit 2023 auch im
Windows Package Manager
(
WinGet
) verwendet für die Konfiguration von Rechnern.
Idempotente Ausführung
Aus der Sicht von DSC ist es kein Fehler, wenn eine Konfiguration schon vorhanden ist (idempotente Ausführung).
Ressourcen
DSC kennt „Ressourcen“. Für eine Ressource (z.B. Benutzer, Gruppen, Dienste, Umgebungsvariablen,
Prozesse
, Registry) definiert der Administrator den Zielzustand. Zu jeder konfigurierbaren Ressource gibt es in der PowerShell einen DSC-Ressourcentyp (z.B. User, Group, Service, Environment, Process, Registry).
Eine sehr universelle Ressource ist die „Script“-Ressource. Mit dieser kann man beliebige PowerShell-Skripte in einer DSC-Datei verwenden und so auch Aktionen ermöglichen, die nicht durch eine der bestehenden Ressourcen abgedeckt sind.
Die Ressourcentypen sind erweiterbar. Zusätzliche Ressourcentypen gibt es beim z.B. hier:
http://gallery.technet.microsoft.com
und
https://github.com/smurawski/DSC-Contrib.
Man kann auch selbst eigene Ressourcentypen schreiben.
Eigenschaften eines Ressourcentyps
Ressourcentypen haben Eigenschaften, die die Arbeit der Ressource steuern. Die Eigenschaften werden gemäß der Syntax Name="Wert" zugewiesen.
Alle Ressourcentypen haben folgende gemeinsamen Eigenschaften:
Ensure="Present" oder "Absent": Diese Eigenschaft sorgt dafür, dass eine Konfiguration durchgesetzt (wenn sie nicht vorhanden ist) oder rückgängig gemacht wird (wenn sie vorhanden ist).
DependsOn="[Ressourcentypename]RessourceName" ist ein Verweis auf einen Ressourcenblock in derselben DSC-Datei, die erfüllt sein müssen, bevor dieser Ressourcenblock ausgeführt wirken kann. Leider kann man hier nicht mehrere Ressourcenblöcke angeben (zumindest ist bei Microsoft nicht dokumentiert, wie es gehen soll, und zahlreiche Versuche mit verschiedenen Syntaxformen haben nicht zum Ziel geführt).
Aufbau einer DSC-Datei
Eine DSC-Datei beginnt mit dem Schlüsselwort configuration, gefolgt von dem im Rahmen der gültigen PowerShell-Bezeichner frei wählbaren Namen der Konfiguration. In geschweiften Klamern folgt ein DSC-Knoten (engl. Nodes) mit Verweis auf einen Rechner. Innerhalb der DSC-Knoten gibt es einen oder mehrere DSC-Ressourcenblöcke. Jeder Ressourcenblock bezieht sich auf einen Ressourcentyp und legt deren Eigenschaften fest. Der Ressourcenblock beginnt mit Ressourcennamen und dann einem im Rahmen der gültigen PowerShell-Bezeichner frei wählbaren Namen für den Block. Ein DSC-Knoteneintrag kann fehlen, d.h., die configuration { } kann direkt DSC-Ressourcenblöcke enthalten. Es darf auch mehrere DSC-Knoteneinträge in einer Datei geben. Es darf innerhalb einer Konfiguration und innerhalb eines DSC-Knoteneinträgs mehrere Einträge für den gleichen Ressourcentyp geben. Jeder Ressourcenblock muss einen eindeutigen Namen haben, sonst kommt es zum Fehler „duplicate resource identifier“.
Ein erstes DSC-Beispiel
Das folgende Listing zeigt ein minimales Beispiel für eine DSC-Datei mit dem Konfigurationsnamen „D
SCE
rstesBeispiel“ mit einem DSC-Knoten und zwei DSC-Ressourcenblöcken mit Namen „RegEintrag1Erzeugen“ und „RegEintrag2Erzeugen“ für den Ressourcentyp Registry, die dafür sorgen, dass es zwei Windows-
Registrierungsdatenbank
einträge „Inhaber“ und „Produkte“ im Schlüssel „HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de“ gibt. Diese Datei kann man unter beliebigem Namen ablegen, gefolgt von der Dateinamenserweiterung .ps1. Es bietet sich an, die Datei wie die Konfiguration zu benennen, also D
SCE
rstesBeispiel.ps1.
"Lade DSC…"
configuration D
SCE
rstesBeispiel
{
node
Server114
{
Registry RegEintrag1Erzeugen
{
Ensure ="Present"
Key ="HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de"
ValueName="Inhaber"
ValueData="
Dr. Holger Schwichtenberg
"
}
Registry RegEintrag2Erzeugen
{
Ensure ="Present"
Key ="HKEY
LOCAL
MACHINE\SOFTWARE\www.IT-Visions.de"
ValueName="Produkte"
ValueData="Schulung,Beratung,Support"
}
}
}
"DSC ist geladen!"
Anwendung einer DSC-Datei
Um die DSC-Datei anzuwenden, sind drei Schritte notwendig:
1. Die DSC-Datei muss ausgeführt werden wie eine normale PowerShell-Skriptdatei (in der
ISE
oder an der Kommandozeile). Normalerweise erhält man dabei keine Ausgabe. In dem Fall des obigen ersten Beispiels erhält man eine Ausgabe, weil vor und nach dem configuration-Block noch Ausgabebefehle stehen.
2. Nun kompiliert man die Konfiguration aus, indem man den Namen der Konfiguration an der Konsole wie den Namen einer PowerShell-Funktion ausführt. Das Ergebnis ist eine
WMI
-
MOF
-Datei. Die PowerShell antwortet mit dem Namen der erzeugten
MOF
-Datei. Dies ist im obigen Fall, wo es keinen dedizierten DSC-Knoten gibt, der Name „localhost.mof“. Die Datei landet in einem Unterverzeichnis, das so heißt wie die Konfiguration. Man sollte dabei aufpassen, wo man mit dem aktuellen Verzeichnis steht, denn die Datei wird relativ zum aktuellen Standort abgelegt.
3. Im letzten Schritt wird nun die kompilierte
MOF
-Datei ausgeführt und damit die Konfiguration angewendet. Dies erfolgt mit dem
Commandlet
Start-DscConfiguration erneut unter Angabe des Konfigurationsnamens
Start-DscConfiguration D
SCE
rstesBeispiel
-Wait –Verbose.
Normalerweise wird die Konfiguration in einem Hintergrundjob ausgeführt, sodass der Benutzer nichts davon sieht, sondern nur den Job-Status abfragen kann. Mit –Wait wird bestimmt, dass die Konfiguration interaktiv gestartet wird. –Verbose sorgt wie immer für eine detaillierte Ausgabe.
DSC-Module
DSC-Ressourcen können in DSC-Module gebündelt werden. DSC-Module bekommt man in der
PowerShell Gallery
https://www.powershellgallery.com/packages.
Viele DSC-Module werden von der DSC Community herausgegeben:
https://dsccommunity.org
Querverweise zu anderen Begriffen im Lexikon
Windows Package Manager (WinGet)
Registrierungsdatenbank
PowerShell Gallery
Commandlet (Cmdlet)
Prozesse
Windows Package Manager (WinGet)
node.js (node)
Microsoft Operational Framework (MOF)
Windows Management Instrumentation (WMI)
PowerShell Integrated Scripting Environment (ISE)
Security Configuration Editor (SCE)
Beratung & Support
Anfrage für Beratung/Consulting zu Desired State Configuration DSC
Gesamter Beratungsthemenkatalog
Technischer Support zum Desired State Configuration DSC
Schulungen zu diesem Thema
Desired State Configuration (DSC)
Windows PowerShell 4.0 für Umsteiger von Version 3.0
Windows PowerShell 5.0/5.1 für Umsteiger von Version 4.0
Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren
Microsoft Azure-Cloud-Dienste verwalten mit der Windows PowerShell
Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren (4-Tages-Agenda des öffentlichen Seminars)
.NET-Sicherheit (.NET Security)
Agile Softwarearchitektur
Microsoft Visio (Basiswissen)
Apps für iOS (iPhone und iPad) entwickeln mit XCode und Objective-C
Windows Server-Administration mit der Windows PowerShell, insbesondere Active Directory-Administration
LEGO® Serious Play® Methode
Design und Usability von modernen Software-Benutzeroberflächen (Software Ergonomie/Benutzungsfreundlichkeit/User Interaction Design/User Experience)
Praktische Architekturdokumentation - Softwarearchitekturen festhalten und kommunizieren
HTML 5.x-Basiswissen (Grundlagen für Einsteiger)
Active Directory-Administration mit der Windows PowerShell
Android-App-Entwicklung mit Java (Android-Programmierung mit Java)
.NET-Softwarearchitektur (Architektur von .NET-Anwendungen)
Windows Server 2016 Update (Neuheiten für Administratoren gegenüber Windows Server 2012 R2)
NHibernate - Objekt-Relationales Mapping (ORM) mit .NET
MySQL oder MariaDB für Fortgeschrittene
Power Platform mit Microsoft Dynamics 365
Windows 8/Windows 8.1 für Anwender/Benutzer (Umstieg von Windows XP auf Windows 8)
Datenmodellieren für und mit Power BI sowie Analysis Services Tabular
Anfrage für eine individuelle Schulung zum Thema Desired State Configuration DSC
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr