Referens för borttagning av egenskapsschema för DSC-resursmanifest
Synopsis
Anger hur du anropar resursen för att ta bort en specifik instans.
Metadata
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.delete.json
Type: object
Description
Definierar hur DSC måste anropa DSC-resursen för att ta bort en instans. Definiera den här metoden för resurser som ett alternativ till att hantera _exist
egenskapen i en set
åtgärd, vilket kan leda till mycket komplex kod. set
Om metoden för resursen kan hantera borttagning av en instans när _exist
är false
anger du handlesExist
egenskapen för den angivna metoddefinitionen till true
i stället.
Om du definierar borttagningsmetoden i ett resursmanifest ska du även definiera _exist
egenskapen i JSON-schemat för resursens egenskaper.
DSC skickar data till kommandot på tre sätt:
- När
input
ärstdin
skickar DSC data som en sträng som representerar data som ett komprimerat JSON-objekt utan blanksteg eller nya ledningar mellan objektegenskaperna. - När
input
ärenv
skickar DSC data som miljövariabler. Den skapar en miljövariabel för varje egenskap i indataobjektet med hjälp av egenskapens namn och värde. - När matrisen
args
innehåller en JSON-indataargumentdefinition skickar DSC data som en sträng som representerar data som ett komprimerat JSON-objekt till det angivna argumentet.
Om du inte definierar input
egenskapen och inte definierar ett JSON-indataargument kan DSC inte skicka JSON-indata till resursen. Du kan bara definiera ett JSON-indataargument för ett kommando.
Du måste definiera input
egenskapen, ett JSON-indataargument i egenskapsmatrisen args
eller båda.
Exempel
Nödvändiga egenskaper
Definitionen delete
måste innehålla följande egenskaper:
Egenskaper
Körbara
Egenskapen executable
definierar namnet på kommandot som ska köras. Värdet måste vara namnet på ett kommando som kan identifieras i systemets PATH
miljövariabel eller den fullständiga sökvägen till kommandot. Ett filnamnstillägg krävs bara när kommandot inte känns igen av operativsystemet som en körbar fil.
Type: string
Required: true
args
Egenskapen args
definierar listan med argument som ska skickas till kommandot. Argumenten kan vara valfritt antal strängar. Om du vill skicka JSON-objektet som representerar egenskapsuppsättningen för resursen till ett argument kan du definiera ett enskilt objekt i matrisen som ett [JSON-objekt], som anger namnet på argumentet med strängegenskapen jsonInputArg
och om argumentet är obligatoriskt för kommandot med den mandatory
booleska egenskapen.
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
Strängargument
Alla objekt i argumentmatrisen kan vara en sträng som representerar ett statiskt argument som ska skickas till kommandot, till exempel config
eller --format
.
Type: string
JSON-indataargument
Definierar ett argument för kommandot som accepterar JSON-indataobjektet som en sträng. DSC skickar JSON-indata till det namngivna argumentet när det är tillgängligt. Ett JSON-indataargument definieras som ett JSON-objekt med följande egenskaper:
jsonInputArg
(obligatoriskt) – argumentet som JSON-data ska skickas till för kommandot, till exempel--input
.mandatory
(valfritt) – Ange om DSC alltid ska skicka argumentet till kommandot, även om det inte finns några JSON-indata för kommandot. I så fall skickar DSC en tom sträng till JSON-indataargumentet.
Du kan bara definiera ett JSON-indataargument per argumentmatris.
Om du definierar ett JSON-indataargument och en input
typ för ett kommando skickar DSC JSON-data åt båda hållen:
- Om du definierar
input
somenv
och ett JSON-indataargument anger DSC en miljövariabel för varje egenskap i JSON-indata och skickar JSON-indataobjektet som en sträng till det definierade argumentet. - Om du definierar
input
somstdin
och ett JSON-indataargument skickar DSC JSON-indata över stdin och som en sträng till det definierade argumentet. - Om du definierar ett JSON-indataargument utan att
input
definiera egenskapen skickar DSC bara JSON-indata som en sträng till det definierade argumentet.
Om du inte definierar input
egenskapen och inte definierar ett JSON-indataargument kan DSC inte skicka JSON-indata till resursen. Detta gör manifestet ogiltigt. Du måste definiera input
egenskapen, ett JSON-indataargument i egenskapsmatrisen args
eller båda.
Type: object
RequiredProperties: [jsonInputArg]
indata
Egenskapen input
definierar hur indata ska skickas till resursen. Om den här egenskapen inte har definierats och definitionen inte definierar ett JSON-indataargument skickar DSC inga indata till resursen när åtgärden anropas delete
.
Värdet för den här egenskapen måste vara en av följande strängar:
env
– Anger att resursen förväntar sig att egenskaperna för en instans anges som miljövariabler med samma namn och hölje.Det här alternativet stöder endast följande datatyper för instansegenskaper:
boolean
integer
number
string
array
värdeninteger
array
värdennumber
array
värdenstring
För icke-matrisvärden anger DSC miljövariabeln till det angivna värdet som det är. När datatypen är en matris med värden anger DSC miljövariabeln som en kommaavgränsad sträng. Egenskapen
foo
med värdet[1, 2, 3]
sparas till exempel ifoo
miljövariabeln som"1,2,3"
.Om resursen behöver stöd för komplexa egenskaper med ett
object
värde eller matriser av flera typer anger du detta tillstdin
i stället.stdin
– Anger att resursen förväntar sig en JSON-blob som representerar en instans frånstdin
. JSON måste följa resursens instansschema.
Type: string
Required: false
ValidValues: [env, stdin]