Freigeben über


dsc-Ressourcensatz

Zusammenfassung

Ruft den Set-Vorgang einer Ressource auf.

Syntax

Instanzeigenschaften aus stdin

<instance-properties> | dsc resource set [Options] --resource <RESOURCE>

Instanzeigenschaften aus Eingabeoption

dsc resource set --input '<instance-properties>' --resource <RESOURCE>

Instanzeigenschaften aus der Datei

dsc resource set --path <instance-properties-filepath> --resource <RESOURCE>

BESCHREIBUNG

Der set Unterbefehl erzwingt den gewünschten Zustand einer Ressource instance und gibt den endgültigen Zustand zurück.

Dieser Unterbefehl legt eine instance einer bestimmten DSC-Ressource fest. Um mehrere Ressourcen festzulegen, verwenden Sie eine Ressourcengruppe oder den Befehl dsc config set .

Der gewünschte Zustand des festzulegenden instance muss als JSON- oder YAML-Objekt an diesen Befehl übergeben werden. Die Objekteigenschaften müssen gültige Eigenschaften für die Ressource sein. Die instance Eigenschaften können von stdin, als Zeichenfolge mit der --input Option oder aus einer gespeicherten Datei mit der --path Option an diesen Befehl übergeben werden.

Dieser Unterbefehl kann nur für befehlsbasierte DSC-Ressourcen aufgerufen werden, die den set Abschnitt ihres Ressourcenmanifests definieren. Wenn dieser Unterbefehl für eine Ressource aufgerufen wird, die keinen set-Vorgang definiert, löst DSC einen Fehler aus.

Wichtig

Der dsc resource set Befehl ruft immer den set Vorgang für die Ressource auf. Ressourcen können logik implementieren, die eine instance für den Vorgang vortestetset, sind aber nicht erforderlich.

Dies unterscheidet sich von der Funktionsweise des dsc-Konfigurationssatzes, bei dem DSC immer einen instance testet, entweder synthetisch oder durch Aufrufen des test Vorgangs set für die Ressource, und ruft nur für einen instance auf, wenn er sich nicht im gewünschten Zustand befindet.

Befehlsbasierte Ressourcen geben an, ob sie pretest für den set Vorgang implementieren, indem sie die set.implementsPretest-Eigenschaft in ihrem Ressourcenmanifest definieren. Wenn diese Eigenschaft als truedefiniert ist, gibt dies an, dass die Ressource einen Vorabtest implementiert. Wenn set.implementsPretest auf false festgelegt oder undefined ist, gibt das Manifest an, dass die Ressource keinen Vorabtest implementiert.

Wenn eine Ressource angibt, dass sie Pretest implementiert, sollten Benutzer davon ausgehen, dass die Ressource während eines set Vorgangs eine instance nur ändert, wenn der Vorabtest zeigt, dass sich die instance nicht im gewünschten Zustand befindet.

Wenn eine Ressource keinen Vorabtest implementiert, sollten Benutzer erwarten, dass die Ressource während eines Vorgangs immer eine set instance ändert.

Für Ressourcen, die den Vorabtest für den set Vorgang nicht implementieren, empfiehlt Microsoft, immer für einen instance aufzurufendsc resource test, um vor dem Aufrufen dsc resource setzu überprüfen, ob sich dieser im gewünschten Zustand befindet. Dies kann dazu beitragen, versehentliche Fehler zu vermeiden, die durch Ressourcen verursacht werden, die keinen vollständig idempotenten set Befehl implementieren.

Beispiele

Beispiel 1: Festlegen einer Ressource mit Eigenschaften aus stdin

Der Befehl stellt sicher, dass der Example Schlüssel in der aktuellen Benutzerstruktur vorhanden ist. Es gibt die Ressource instance Eigenschaften als JSON an und übergibt sie von stdin.

'{
    "keyPath": "HKCU\\Example",
    "_exist": true
}' | dsc resource set --resource Microsoft.Windows/Registry

Beispiel 2: Festlegen einer Ressource mit der Eingabeoption

Der Befehl stellt sicher, dass der Example Schlüssel in der aktuellen Benutzerstruktur vorhanden ist. Es gibt die Ressource instance Eigenschaften als JSON an und übergibt sie mit der Eingabeoption.

dsc resource set --resource Microsoft.Windows/Registry --input '{
    "keyPath": "HKCU\\Example",
    "_exist": true
}'

Beispiel 3: Festlegen einer Ressource mit Eigenschaften aus einer YAML-Datei

Der Befehl stellt sicher, dass der Example Schlüssel in der aktuellen Benutzerstruktur vorhanden ist. Es gibt den Pfad zu einer Yaml-Datei an, die die Ressource instance Eigenschaften mit der Pfadoption definiert.

cat ./example.yaml
keyPath: HKCU\\Example
_exist:  true
dsc resource set --resource Microsoft.Windows/Registry --path ./example.yaml

Optionen

-r, --resource

Gibt den vollqualifizierten Typnamen der zu verwendenden DSC-Ressource an, z. B Microsoft.Windows/Registry. .

Die vollqualifizierte Typnamensyntax lautet: <owner>[.<group>][.<area>]/<name>, wobei:

  • Der owner ist der Verwalten des Autors oder organization für die Ressource.
  • Die group und area sind optionale Namenskomponenten, die die Namenspacing für eine Ressource ermöglichen.
  • Der name identifiziert die Komponente, die von der Ressource verwaltet wird.
Type:      String
Mandatory: true

-i, --input

Gibt ein JSON- oder YAML-Objekt mit den Eigenschaften an, die den gewünschten Zustand einer DSC-Ressource instance definieren. DSC überprüft das Objekt anhand des instance Schemas der Ressource. Wenn die Überprüfung fehlschlägt, löst DSC einen Fehler aus.

Diese Option kann nicht mit instance Eigenschaften über stdin oder die --path Option verwendet werden. Wählen Sie aus, ob die instance Eigenschaften über stdin, aus einer Datei mit der --path Option oder mit der Option an den --input Befehl übergeben werden sollen.

Type:      String
Mandatory: false

-p, --path

Definiert den Pfad zu einer Textdatei, die als Eingabe für den Befehl gelesen werden soll, anstatt eingaben von stdin oder als Zeichenfolge mit der --input Option zu übergeben. Die angegebene Datei muss JSON oder YAML enthalten, das gültige Eigenschaften für die Ressource darstellt. DSC überprüft das Objekt anhand des instance Schemas der Ressource. Wenn die Überprüfung fehlschlägt oder die angegebene Datei nicht vorhanden ist, löst DSC einen Fehler aus.

Diese Option schließt sich mit der --input Option gegenseitig aus. Wenn Sie diese Option verwenden, ignoriert DSC alle Eingaben von stdin.

Type:      String
Mandatory: false

-f, --format

Die --format Option steuert das Konsolenausgabeformat für den Befehl. Wenn die Befehlsausgabe umgeleitet oder als Variable erfasst wird, ist die Ausgabe immer JSON.

Type:         String
Mandatory:    false
DefaultValue: yaml
ValidValues:  [json, pretty-json, yaml]

-h, --help

Zeigt die Hilfe für den aktuellen Befehl oder Unterbefehl an. Wenn Sie diese Option angeben, ignoriert die Anwendung alle Optionen und Argumente nach dieser Option.

Type:      Boolean
Mandatory: false

Ausgabe

Dieser Befehl gibt eine JSON-Ausgabe zurück, die den tatsächlichen Zustand des instance vor und nach dem Setvorgang sowie die Liste der Eigenschaften enthält, die der Setvorgang geändert hat. Weitere Informationen finden Sie unter dsc-Ressourcensatzergebnisschema.