Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Synopsis
Datafilen som definierar en kommandobaserad DSC-resurs.
Metadata
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/resource/manifest.json
Type: object
Description
Varje kommandobaserad DSC-resurs måste ha ett manifest. Manifestfilen måste:
- Kan identifieras i miljövariabeln
PATH. - Formateras som antingen JSON eller YAML.
- Följ namngivningskonventionen
<name>.dsc.resource.<extension>. Giltiga tillägg ärjson,yml, ochyaml. - Vara giltigt för schemat som beskrivs i det här dokumentet.
I resten av det här dokumentet beskrivs manifestets schema.
Nödvändiga egenskaper
Manifestet måste innehålla följande egenskaper:
Properties
$schema
Egenskapen $schema anger den kanoniska URI:n för det här schemat som manifestet verifierar mot. Den här egenskapen är obligatorisk. DSC använder det här värdet för att verifiera manifestet mot rätt JSON-schema.
JSON-scheman för DSC publiceras i flera versioner och formulär. Den här dokumentationen är för den senaste versionen av schemat. För enkelhetens skull kan du ange antingen den fullständiga URI:n för schemat som finns i GitHub eller använda den kortare aka.ms URI:n. Du kan ange schemat för en specifik semantisk version, det senaste schemat för en delversion eller det senaste schemat för en huvudversion av DSC. Mer information om schema-URI:er och versionshantering finns i DSC JSON-schema-URI:er.
För varje version av schemat finns det tre giltiga URL:ar:
.../resource/manifest.jsonURL:en till det kanoniska icke-paketerade schemat. När det används för validering måste valideringsklienten hämta det här schemat och alla scheman som det refererar till.
.../bundled/resource/manifest.jsonURL:en till det kanoniskt paketerade schemat. När den används för validering behöver valideringsklienten bara hämta det här schemat.
Det här schemat använder den paketeringsmodell som introducerades för JSON Schema 2020-12. DSC kan fortfarande validera dokumentet när det använder det här schemat, men andra verktyg kan fel eller bete sig på oväntade sätt om de inte har fullt stöd för specifikationen för 2020-12.
.../bundled/resource/manifest.vscode.jsonURL:en till det utökade redigeringsschemat. Det här schemat är mycket större än de andra schemana, eftersom det innehåller ytterligare definitioner som ger sammanhangsberoende hjälp och kodfragment som de andra inte inkluderar.
Det här schemat använder nyckelord som endast identifieras av VS Code. DSC kan fortfarande verifiera dokumentet när det använder det här schemat, men andra verktyg kan fel eller bete sig på oväntade sätt.
Type: string
Required: true
Format: URI
ValidValues: [
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.2/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.1/bundled/resource/manifest.vscode.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/bundled/resource/manifest.json
https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.0.0/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3/resource/manifest.json
https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.1/resource/manifest.json
https://aka.ms/dsc/schemas/v3.1/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.1/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.1.0/resource/manifest.json
https://aka.ms/dsc/schemas/v3.1.0/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.1.0/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.0/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.0.2/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.2/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.2/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.0.1/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.1/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.1/bundled/resource/manifest.vscode.json
https://aka.ms/dsc/schemas/v3.0.0/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.0/bundled/resource/manifest.json
https://aka.ms/dsc/schemas/v3.0.0/bundled/resource/manifest.vscode.json
]
type
Egenskapen type representerar det fullständigt kvalificerade typnamnet för resursen. Den används för att ange resursen i konfigurationsdokument och som värdet för flaggan --resource när du dsc resource * använder kommandona. Mer information om namn på resurstyper finns i schemareferens för schemat för fullständigt kvalificerat typnamn för DSC-resurs.
Type: string
Required: true
Pattern: ^\w+(\.\w+){0,2}\/\w+$
version
Egenskapen version måste vara den aktuella versionen av resursen som en giltig semantisk versionssträng (semver). Versionen gäller för resursen, inte den programvara som den hanterar.
Type: string
Required: true
Pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
description
Egenskapen description definierar en sammanfattning för resursens syfte. Värdet för den här egenskapen måste vara en kort sträng.
Type: string
Required: false
kind
Egenskapen kind definierar hur DSC ska hantera resursen. DSC stöder flera typer av DSC-resurser: resource, group, importeradapter, och exporter.
När kind det inte definieras i resursmanifestet härleder DSC värdet för egenskapen.
adapter Om egenskapen definieras i resursmanifestet härleder DSC värdet för kind as adapter.
adapter Om egenskapen inte har definierats härleder DSC värdet för kind as resource.
DSC kan inte härleda om ett manifest är för en group eller importer resurs.
När du definierar en gruppresurs definierar kind du alltid uttryckligen egenskapen i manifestet som group. När du definierar en importresurs definierar kind du alltid uttryckligen egenskapen i manifestet som importer.
Mer information finns i Schemareferens för DSC-resurstyp.
Type: string
Required: false
ValidValues: [resource, adapter, group, importer, exporter]
tags
Egenskapen tags definierar en lista med sökbara termer för resursen. Värdet för den här egenskapen måste vara en matris med strängar. Varje tagg får endast innehålla alfanumeriska tecken och understreck. Inga andra tecken tillåts. Varje tagg måste vara unik.
Type: array
Required: false
ItemsMustBeUnique: true
ItemsType: string
ItemsPattern: ^\w+$
export
Egenskapen export definierar hur resursen ska anropas för att hämta det aktuella tillståndet för varje instans.
När den här egenskapen har definierats kan användarna:
- Ange en instans av resursen i indatakonfigurationen för dsc config export kommandot för att generera ett användbart konfigurationsdokument.
- Ange resursen med kommandot dsc resource export för att generera ett konfigurationsdokument som definierar varje instans av resursen.
- Ange resursen med kommandot dsc resource get och alternativet --all för att returnera det aktuella tillståndet för varje instans av resursen.
Värdet för den här egenskapen måste vara ett objekt. Objektets executable egenskap, som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskapen args är valfri. Mer information finns i schemareferens för export av egenskapsegenskap för DSC-resursmanifest.
Type: object
Required: true
get
Egenskapen get definierar hur resursen ska anropas för att hämta det aktuella tillståndet för en instans. Den här egenskapen är obligatorisk för alla resurser.
Värdet för den här egenskapen måste vara ett objekt. Objektets executable egenskap, som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskaperna args och input är valfria. Mer information finns i Schemareferens för DSC-resursmanifest för att hämta egenskap.
Type: object
Required: true
set
Egenskapen set definierar hur resursen ska anropas för att ange önskat tillstånd för en instans. Den definierar också hur du bearbetar utdata från resursen för den här metoden. När den här egenskapen inte har definierats kan DSC inte hantera instanser av resursen. Den kan bara hämta sitt aktuella tillstånd och testa om instansen är i önskat tillstånd.
Värdet för den här egenskapen måste vara ett objekt. Egenskapen executable , som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskaperna argsinput, implementsPretestoch returns är valfria. Mer information finns i Schemareferens för egenskapsschema för DSC-resursmanifestuppsättning.
Type: object
Required: false
whatIf
Definierar hur DSC måste anropa DSC-resursen för att ange om och hur set-kommandot ska ändra en instans och hur utdata från DSC-resursen ska bearbetas. Om en resurs inte definierar den här metoden i manifestet syntetiserar DSC det här beteendet genom att konvertera resultatet av teståtgärden för resursen till det angivna resultatet.
Värdet för den här egenskapen måste vara ett objekt. Egenskapen executable , som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskaperna argsinput, implementsPretestoch returns är valfria. Mer information finns i Schemareferens för DSC-resursmanifest whatIf-egenskap.
test
Egenskapen test definierar hur resursen ska anropas för att testa om en instans är i önskat tillstånd. Den definierar också hur du bearbetar utdata från resursen för den här metoden. När den här egenskapen inte har definierats utför DSC ett grundläggande syntetiskt test för instanser av DSC-resursen.
Värdet för den här egenskapen måste vara ett objekt. Objektets executable egenskap, som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskaperna argsinputoch returns är valfria.
Mer information finns i schemareferens för testegenskapsegenskap för DSC-resursmanifest.
Type: object
Required: false
validate
Egenskapen validate definierar hur du anropar en DSC-gruppresurs för att verifiera dess instanser. Den här egenskapen är obligatorisk för DSC-gruppresurser. DSC ignorerar den här egenskapen för alla andra resurser.
Värdet för den här egenskapen måste vara ett objekt. Objektets executable egenskap, som definierar namnet på kommandot som ska anropas, är obligatorisk. Egenskapen args är valfri. Mer information finns i Schemareferens för DSC-resursmanifest för validering av egenskap.
Type: object
Required: false
provider
När det provider anges definierar egenskapen resursen som en DSC-resursprovider.
Värdet för den här egenskapen måste vara ett objekt. Objektens list och config egenskaperna är obligatoriska. Egenskapen list definierar hur providern ska anropas för att returnera de resurser som providern kan hantera. Egenskapen config definierar hur providern förväntar sig indata. Mer information finns i schemareferensen för DSC-resursmanifestproviderns egenskap.
exitCodes
Egenskapen exitCodes definierar en uppsättning giltiga slutkoder för resursen och deras betydelse.
Definiera den här egenskapen som en uppsättning nyckel/värde-par där:
- Nyckeln är en sträng som innehåller ett signerat heltal som mappar till en känd slutkod för resursen.
Slutkoden måste vara ett literalsignerat heltal. Du kan inte använda alternativa format för slutkoden. I stället för det hexadecimala värdet
0x80070005för "Åtkomst nekad" anger du slutkoden som-2147024891. - Värdet är en sträng som beskriver den semantiska innebörden av slutkoden för en mänsklig läsare.
DSC tolkar slutkoden 0 som en lyckad åtgärd och all annan slutkod som ett fel.
Tip
Om du redigerar resursmanifestet i yaml måste du omsluta slutkoden med enkla citattecken för att säkerställa att YAML-filen kan parsas korrekt. Till exempel:
exitCodes:
'0': Success
'1': Invalid parameter
'2': Invalid input
'3': Registry error
'4': JSON serialization failed
Type: object
Required: false
PropertyNamePattern: ^-?[0-9]+#
PropertyValueType: string
schema
Egenskapen schema definierar hur du hämtar JSON-schemat som validerar en instans av resursen. Den här egenskapen måste alltid vara ett objekt som definierar någon av följande egenskaper:
-
command- När du angercommandegenskapen anropar DSC det definierade kommandot för att hämta JSON-schemat. -
embedded- När du angerembeddedegenskapen använder DSC det definierade värdet som JSON-schema.
Mer information finns i egenskapsreferens för schemat för DSC-resursmanifestet.
Type: object
Required: true