Dela via


about_DesiredStateConfiguration

Kort beskrivning

Ger en kort introduktion till funktionen PowerShell Desired State Configuration (DSC).

Lång beskrivning

DSC är en hanteringsplattform i PowerShell som gör det möjligt att distribuera och hantera konfigurationsdata för programvarutjänster och hantera miljön där dessa tjänster körs.

DSC tillhandahåller en uppsättning PowerShell-språktillägg, nya cmdletar och resurser som du kan använda för att deklarativt ange hur du vill att tillståndet för din programvarumiljö ska konfigureras. Det ger också ett sätt att underhålla och hantera befintliga konfigurationer.

DSC introduceras i PowerShell 4.0.

Detaljerad information om DSC finns i Översikt över önskad tillståndskonfiguration i PowerShell.

UTVECKLA DSC-RESURSER MED KLASSER

Från och med PowerShell 5.0 kan du utveckla DSC-resurser med hjälp av klasser. Mer information finns i about_Classes och Skriva en anpassad DSC-resurs med PowerShell-klasser.

ANVÄNDA DSC

Om du vill använda DSC för att konfigurera din miljö definierar du först ett PowerShell-skriptblock med hjälp av nyckelordet Konfiguration, följt av en identifierare, som i sin tur följs av par klammerparenteser som avgränsar blocket. I konfigurationsblocket kan du definiera nodblock som anger önskat konfigurationstillstånd för varje nod (dator) i miljön. Ett nodblock börjar med nyckelordet Node, följt av namnet på måldatorn, som kan vara en variabel. Efter datornamnet kommer de klammerparenteser som avgränsar nodblocket. I nodblocket kan du definiera resursblock för att konfigurera specifika resurser. Ett resursblock börjar med resursens typnamn följt av den identifierare som du vill ange för blocket, följt av de klammerparenteser som avgränsar blocket, som du ser i följande exempel.

Configuration MyWebConfig {
    # Parameters are optional
    param ($MachineName, $WebsiteFilePath)
    # A Configuration block can have one or more Node blocks
    Node $MachineName
    {
        # Next, specify one or more resource blocks
        # WindowsFeature is one of the resources you can use in a Node block
        # This example ensures the Web Server (IIS) role is installed
        WindowsFeature IIS
        {
            # To ensure that the role is not installed, set Ensure to "Absent"
            Ensure = "Present"
            Name = "Web-Server" # Use the Name property from Get-WindowsFeature
        }

        # You can use the File resource to create files and folders
        # "WebDirectory" is the name you want to use to refer to this instance
        File WebDirectory
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File"
            Recurse = $true
            SourcePath = $WebsiteFilePath
            DestinationPath = "C:\inetpub\wwwroot"

            # Ensure that the IIS block is successfully run first before
            # configuring this resource
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Om du vill skapa en konfiguration anropar du konfigurationsblocket på samma sätt som du anropar en PowerShell-funktion och skickar in eventuella förväntade parametrar som du kan ha definierat (två i exemplet ovan). I det här fallet kan du till exempel:

MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
  "\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional

Detta genererar en MOF-fil per nod på den sökväg som du anger. Dessa MOF-filer anger önskad konfiguration för varje nod. Använd sedan följande cmdlet för att parsa konfigurationens MOF-filer, skicka varje nod dess motsvarande konfiguration och anta dessa konfigurationer. Observera att du inte behöver skapa en separat MOF-fil för klassbaserade DSC-resurser.

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"

ANVÄNDA DSC FÖR ATT UNDERHÅLLA KONFIGURATIONSTILLSTÅND

Med DSC är konfigurationen idempotent. Det innebär att om du använder DSC för att utföra samma konfiguration mer än en gång blir det resulterande konfigurationstillståndet alltid detsamma. Om du misstänker att alla noder i din miljö kan ha glidit från det önskade konfigurationstillståndet kan du använda samma DSC-konfiguration igen för att återställa dem till önskat tillstånd. Du behöver inte ändra konfigurationsskriptet för att endast hantera de resurser vars tillstånd har drivits från önskat tillstånd.

I följande exempel visas hur du kan kontrollera om det faktiska konfigurationstillståndet på en viss nod har glidit från den senaste DSC-konfigurationen som antogs på noden. I det här exemplet kontrollerar vi konfigurationen av den lokala datorn.

$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session

INBYGGDA DSC-RESURSER

Du kan använda följande inbyggda resurser i konfigurationsskripten:

Name Egenskaper
Fil {DestinationPath, Attribut, Kontrollsumma, Innehåll...}
Arkiv {Mål, sökväg, kontrollsumma, autentiseringsuppgifter...}
Environment {Name, DependsOn, Ensure, Path...}
Grupp {GroupName, Credential, DependsOn, Description...}
Loggas {Message, DependsOn, PsDscRunAsCredential}
Paket {Namn, Sökväg, ProductId, Argument...}
Register {Key, ValueName, DependsOn, Ensure...}
Skript {GetScript, SetScript, TestScript, Credential...}
Tjänst {Name, BuiltInAccount, Credential, Dependencies...}
User {UserName, DependsOn, Description, Disabled...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Name, Credential, DependsOn, Ensure...}
WindowsOptionalFeature {Name, DependsOn, Ensure, LogLevel...}
WindowsProcess {Argument, Sökväg, Autentiseringsuppgifter, DependsOn...}

Kör cmdleten Get-DscResource för att hämta en lista över tillgängliga DSC-resurser i systemet.

Kommentar

I PowerShell-versioner under 7.0 Get-DscResource hittar du inte klassbaserade DSC-resurser.

Exemplet i det här avsnittet visar hur du använder fil- och WindowsFeature-resurserna. Om du vill se alla egenskaper som du kan använda med en resurs infogar du markören i resursnyckelordet (till exempel Fil) i konfigurationsskriptet i PowerShell ISE genom att hålla ned CTRL+BLANKSTEG

HITTA FLER RESURSER

Du kan ladda ned, installera och lära dig om många andra tillgängliga DSC-resurser som har skapats av PowerShell- och DSC-användarcommunityn och av Microsoft. Besök PowerShell-galleriet för att bläddra och lära dig mer om tillgängliga DSC-resurser.

Se även