Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
DSC-resources bieden een gestandaardiseerde interface voor het beheren van de instellingen van een systeem. Een resource definieert eigenschappen die u kunt beheren en implementeert de code die nodig is om een exemplaar van de resource op te halen.
DSC-opdrachtbronnen worden gedefinieerd met ten minste twee bestanden:
- Een DSC-resourcemanifest dat DSC vertelt hoe de resource moet worden gebruikt.
- Een of meer uitvoerbare bestanden en hun afhankelijkheden om exemplaren van de bron te beheren.
DSC-bronmanifesten
DSC-bronmanifesten worden gedefinieerd als gegevensbestanden. DSC wil een gegevensbestand als een manifest herkennen als het aan de volgende criteria voldoet:
De gegevens in het bestand moeten zijn opgemaakt als YAML of JSON.
Het bestand moet UTF-8-codering gebruiken.
Het bestand moet detecteerbaar zijn in de
PATHomgevingsvariabele.De bestandsnaam moet eindigen op een van de volgende achtervoegsels:
.dsc.resource.json.dsc.resource.yaml.dsc.resource.yml
Wanneer DSC in het lokale systeem zoekt naar beschikbare opdrachtbronnen, wordt in elke map in de PATH map gezocht naar bestanden die gebruikmaken van de naamgevingsconventie voor het DSC-bronmanifest. DSC parseert vervolgens elk van deze gedetecteerde bestanden en valideert ze aan de hand van het DSC Resource Manifest JSON-schema.
Als het JSON-bestand wordt gevalideerd aan de hand van het schema, kan DSC de DSC-bron gebruiken.
In het manifest moet ten minste het volgende worden omschreven:
- De versie van het JSON-schema van het DSC-bronmanifest waarmee het compatibel is.
- De volledig gekwalificeerde naam van de bron, zoals
Microsoft.Windows/Registry. De volledig gekwalificeerde naamsyntaxis is<owner>[.<group>][.<area>]/<name>. Met de groeps- en gebiedscomponenten van de volledig gekwalificeerde naam kunt u resources ordenen in naamruimten. - Hoe DSC de opdracht kan aanroepen om de huidige status van een resource-exemplaar op te halen.
- Een manier om een instantie te valideren. Opties voor het valideren van een exemplaar zijn onder andere:
- Een JSON-schema dat een exemplaar beschrijft
- Een commando dat DSC moet aanroepen om het schema tijdens runtime op te halen
- Een opdracht om geneste DSC-bronnen te valideren. Deze laatste optie is alleen van toepassing op DSC-groepsbronnen en DSC-adapterbronnen.
Het manifest kan het volgende definiëren:
Het soort bron dat in het manifest wordt beschreven:
adapter,group,importer, ofresource.Als het manifest de resourcesoort niet definieert, wordt het standaard ingesteld op
resourceen geïnterpreteerd als een typische resource die een exemplaar rechtstreeks beheert.Hoe DSC de opdracht kan aanroepen om te testen of een exemplaar zich in de gewenste status bevindt.
Als in het manifest niet wordt gedefinieerd hoe een exemplaar van de resource moet worden getest, voert DSC een synthetische test uit voor resource-exemplaren. De synthetische test van DSC krijgt altijd de werkelijke status van een instantie en maakt een strikte hoofdlettergevoelige vergelijking van de eigenschappen van de instantie met de gewenste toestand. Als een van de eigenschappen niet exact hetzelfde is als de gedefinieerde gewenste status, meldt DSC dat het exemplaar niet compatibel is.
Hoe DSC de opdracht kan aanroepen om een instantie in te stellen op de gewenste status.
Als in het manifest niet wordt gedefinieerd hoe een exemplaar van de DSC-resource moet worden ingesteld, kan DSC de resource niet gebruiken om de gewenste status af te dwingen.
De betekenis van de niet-nul exitcodes die door het commando worden geretourneerd.
Als het manifest de betekenis voor afsluitcodes niet definieert, worden alle niet-nulzijnde afsluitcodes gerapporteerd als een algemene fout.
Hoe DSC de opdracht kan aanroepen om een lijst van elk exemplaar van die bron op de machine te exporteren.
Hoe DSC de opdracht kan aanroepen om een specifiek exemplaar van de resource te verwijderen.
Metadata over de bron, zoals de auteur en een korte beschrijving.
Het manifest hoeft niet voor elke bewerking hetzelfde uitvoerbare bestand op te geven. De definitie voor elke bewerking is onafhankelijk.
Uitvoerbare bestanden voor DSC-bronnen
Opdrachtbronnen vereisen altijd een uitvoerbaar bestand om DSC te kunnen uitvoeren. Het manifest hoeft niet te worden gebundeld met het uitvoerbare bestand. Het uitvoerbare bestand kan elk uitvoerbaar bestand zijn, zoals een binaire toepassing of een shellscript. Een resource kan verschillende uitvoerbare bestanden gebruiken voor verschillende bewerkingen.
DSC kan een uitvoerbaar bestand alleen gebruiken als het kan worden gedetecteerd in de PATH omgevingsvariabele. DSC roept het uitvoerbare bestand eenmaal per bewerking aan, met behulp van de afsluitcode die door het uitvoerbare bestand wordt geretourneerd om te bepalen of de opdracht is geslaagd. DSC beschouwt de afsluitcode 0 als een succes en alle andere afsluitcodes als een fout.
Invoer
DSC verzendt invoer naar opdrachtbronnen op een van de volgende manieren:
Een JSON-gegevensblob over stdin.
Wanneer DSC de invoer verzendt als JSON via stdin, is de gegevensblob de JSON-weergave van de gewenste status van een exemplaar. Deze invoeroptie ondersteunt complexe eigenschappen met geneste objecten.
Een JSON-gegevensblob als de waarde voor een specifiek argument.
Wanneer de bron een JSON-invoerargument definieert, roept DSC de opdracht met het gedefinieerde argument aan en geeft de JSON-weergave van de gewenste status van een instantie door aan dat argument. Deze invoeroptie ondersteunt complexe eigenschappen met geneste objecten.
Een set van argumentvlaggen en waarden.
Wanneer DSC de invoer als argumenten verzendt, wordt er een paar argumenten gegenereerd voor elk van de opgegeven eigenschappen. Het eerste argument is de naam van de eigenschap die wordt voorafgegaan door
--, zoals--duration. Het tweede argument is de waarde van het onroerend goed. De volgorde van de argumentparen is niet gegarandeerd. Deze invoermethode biedt geen ondersteuning voor complexe eigenschappen.Omgevingsvariabelen.
Wanneer DSC de invoer als omgevingsvariabelen verzendt, wordt een omgevingsvariabele gedefinieerd voor elke eigenschap van het resource-exemplaar en wordt de waarde ingesteld op de tekenreeksweergave van die eigenschap. Deze omgevingsvariabelen zijn alleen gedefinieerd voor de uitvoering van de opdracht voor die specifieke bewerking. De omgevingsvariabelen hebben geen invloed op andere processen.
De invoerverwerking wordt per bewerking gedefinieerd in het resourcemanifest. Een resource kan verschillende invoerverwerking definiëren voor de bewerkingen die worden ondersteund.
Uitgangen
Het uitvoerbare bestand voor een opdrachtresource moet JSON-gegevens terugsturen naar stdout wanneer deze wordt aangeroepen door DSC. De uitvoercodering moet UTF-8 zijn. Wanneer de resource de status van een exemplaar retourneert, valideert DSC de JSON-gegevens aan de hand van het instantieschema van de resource.
Voor adapterresources verwacht DSC dat het uitvoerbare bestand de instantiestatussen doorloopt voor de resources die worden beheerd als één JSON-array of als een reeks JSON-regels.
Opdrachtbronnen kunnen logboekgegevens rapporteren aan DSC door JSON-lijnen naar stderr te verzenden. Elke logboekvermelding moet een JSON-object zijn dat twee sleutels bevat:
- De
messagesleutel definieert de door mensen leesbare tekenreeks voor de logboekinvoer. - De
levelsleutel definieert of het bericht eenerror, een , ofinformationwarning.
DSC verzamelt berichten van resources en geeft deze weer in de resultaten voor een configuratiebewerking. Wanneer DSC een bron rechtstreeks buiten een configuratie aanroept, worden de berichten niet verzameld. In plaats daarvan zendt DSC de berichten uit naar stderr.