DSC-resurser
Gäller för Windows PowerShell 4.0 och uppåt.
Översikt
Desired State Configuration (DSC) Resurser utgör byggstenarna för en DSC-konfiguration. En resurs exponerar egenskaper som kan konfigureras (schema) och innehåller De PowerShell-skriptfunktioner som LCM (Local Konfigurationshanteraren) anropar för att "göra det".
En resurs kan modellera något så generiskt som en fil eller så specifikt som en IIS-serverinställning. Grupper av liknande resurser kombineras i en DSC-modul, som organiserar alla nödvändiga filer i en struktur som är portabel och innehåller metadata för att identifiera hur resurserna är avsedda att användas.
Varje resurs har ett *schema som avgör vilken syntax som behövs för att använda resursen i en konfiguration. Schemat för en resurs kan definieras på följande sätt:
Schema.Moffil: De flesta resurser definierar sitt schema i en fil med hjälpschema.mofav Managed Object Format.<Resource Name>.schema.psm1fil: Sammansatta resurser definierar sitt schema i en fil med hjälp<ResourceName>.schema.psm1av parameterblocket.<Resource Name>.psm1fil: Klassbaserade DSC-resurser definierar sitt schema i klassdefinitionen. Syntaxobjekt betecknas som klassegenskaper. Mer information finns i about_Classes.
Om du vill hämta syntaxen för en DSC-resurs använder du cmdleten Get-DSCResource med parametern Syntax. Den här användningen liknar att använda Get-Command med parametern Syntax för att hämta cmdlet-syntax. De utdata som visas visar den mall som används för ett resursblock för den resurs som du anger.
Get-DscResource -Syntax Service
De utdata som visas bör likna utdata nedan, även om den här resursens syntax kan ändras i framtiden. Precis som cmdlet-syntax är nycklarna inom hakparenteser valfria. Typerna anger vilken typ av data som varje nyckel förväntar sig.
Anteckning
Se till att nyckeln är valfri eftersom standardvärdet är "Närvarande".
Service [String] #ResourceName
{
Name = [string]
[BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
[Credential = [PSCredential]]
[Dependencies = [string[]]]
[DependsOn = [string[]]]
[Description = [string]]
[DisplayName = [string]]
[Ensure = [string]{ Absent | Present }]
[Path = [string]]
[PsDscRunAsCredential = [PSCredential]]
[StartupType = [string]{ Automatic | Disabled | Manual }]
[State = [string]{ Running | Stopped }]
}
Anteckning
I PowerShell-versioner under 7.0 Get-DscResource hittar inte klassbaserade DSC-resurser.
I en konfiguration kan ett tjänstresursblock se ut så här för att säkerställa att bufferttjänsten körs.
Anteckning
Innan du använder en resurs i en konfiguration måste du importera den med import-DSCResource.
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as l
# ong as it is of type [String] as indicated by the schema.
Service "Spooler:Running"
{
Name = "Spooler"
State = "Running"
}
}
}
Konfigurationer kan innehålla flera instanser av samma resurstyp. Varje instans måste ha ett unikt namn. I följande exempel läggs ett andra tjänstresursblock till för att konfigurera "DHCP"-tjänsten.
Configuration TestConfig
{
# It is best practice to always directly import resources, even if the
# resource is a built-in resource.
Import-DSCResource -Name Service
Node localhost
{
# The name of this resource block, can be anything you choose, as
# long as it is of type [String] as indicated by the schema.
Service "Spooler:Running"
{
Name = "Spooler"
State = "Running"
}
# To configure a second service resource block, add another Service
# resource block and use a unique name.
Service "DHCP:Running"
{
Name = "DHCP"
State = "Running"
}
}
}
Anteckning
Från och med PowerShell 5.0 har IntelliSense lagts till för DSC. Med den här nya funktionen kan du använda TABB- och Ctr-utrymme + för att komplettera nyckelnamn automatiskt.

Typer av resurser
Windows levereras med inbyggda resurser och Linux har OS-specifika resurser. Det finns resurser för beroenden mellan noder,pakethanteringsresurser samt resurser som ägs och underhålls av communityn. Du kan använda stegen ovan för att fastställa syntaxen för dessa resurser och hur du använder dem. De sidor som betjänar dessa resurser har arkiverats under Referens.
Inbyggda resurser i Windows
- Arkivera resursen
- Miljöresurs
- Filresurs
- Gruppresurs
- GroupSet-resurs
- Loggresurs
- Paketresurs
- ProcessSet-resurs
- Registerresurser
- Skriptresurs
- Tjänstresurs
- ServiceSet-resurs
- Användarresurs
- WindowsFeature-resurs
- WindowsFeatureSet-resurs
- WindowsOptionalFeature-resurs
- WindowsOptionalFeatureSet-resurs
- WindowsPackageCabResource-resurs
- WindowsProcess-resurs