![Page 1: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/1.jpg)
Jan Egil RingGet Started with Windows PowerShell Desired State Configuration
![Page 2: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/2.jpg)
Agenda• Background• Goals• Desired State Configuration Arhictecture
• Configuration models
• Demos
![Page 3: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/3.jpg)
Background - Monad Manifesto
1. Monad Automation Model (v1)2. Monad Shell (v1)3. Monad Remote Scripting (v2)4. Monad Management Console (v3)5. Monad Management Models (v4)
www.jsnover.com/blog/2011/10/01/monad-manifesto
![Page 4: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/4.jpg)
Goal
![Page 5: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/5.jpg)
Goal
![Page 6: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/6.jpg)
The Good and the BadScale means…
Business is growing!!
However… More servers=> More Failures
Scale * ComplexityExceeds Skill
Rapid change means…
Can respond and capture market
However…More Change=> More Failures
Change isPrimary cause of outage
Life in the Cloud… (management)
Rapid change, at scale, with constant failures
![Page 7: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/7.jpg)
Enables you to ensure that the components of your data center have the correct configuration
Allows “continuous deployment” and prevents “configuration drift”
Uses language extensions and providers to enable declarative, autonomous and idempotent (repeatable) Deployment, Configuration and Conformance of standards-based managed elements
PowerShell Desired State Configuration
![Page 8: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/8.jpg)
Make It So
(@#$%@$&)Yes Sir!
![Page 9: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/9.jpg)
Imperative versus declarative syntax
• Unfamiliar for ITPro`s with no developer background• Essential to understand in order to see the benefits
of DSC and how it is implemented
![Page 10: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/10.jpg)
Imperative syntax
![Page 11: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/11.jpg)
Declarative syntax
![Page 12: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/12.jpg)
Idempotence
“ .. operations .. that can be applied multiple times without changing the result beyond the initial application”
In practice: If the conditions haven`t changed, the result doesn`t change
![Page 13: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/13.jpg)
Demo
Defining and applying a DSC configuration
![Page 14: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/14.jpg)
DSC Resources
Bult-in resources for:• Enabling or disabling server roles and features• Managing registry settings• Managing files and folders• Starting, stopping and managing processes and services• Managing local user and group accounts• Deploying new software packages• Managing environment variables• Running Windows PowerShell scripts
Archive
Environment
File
Group
Log
Package
Process
Registry
Role
Script
Service
User
![Page 15: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/15.jpg)
Architecture
Two configuration models:• Push Model• Pull Model
![Page 16: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/16.jpg)
Push Model
Configuration Staging Area(Contains DSC
data)3rd party
languages and tools
Authoring Phase(May include imperative as well as declarative code)
Staging Phase- Fully declarative
configuration representation using DMTF standard MOF instances
- Configuration is calculated for all nodes
PS V1, V2, V3
PS V4***
“Make it So” Phase(Declarative configuration is reified through imperative providers.)
Parser and Dispatcher
Imperative Providers
*** When authoring in PowerShell, on top of PSV3 imperative features, PSV4 adds:
• Declarative syntax extensions• Schema-driven Intellisense• Schema validation (early-binding)
Providers implement changes:• Monotonic• Imperative• Idempotent
Local Configuration
Store
![Page 17: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/17.jpg)
Pull Model
Pull Server(Contains DSC
data and Modules)
3rd party languages and tools
Authoring Phase(May include imperative as well as declarative code)
Staging Phase- Fully declarative
configuration representation using DMTF standard MOF instances
- Configuration is calculated for all nodes
PS V1, V2, V3
PS V4***
“Make it So” Phase(Declarative configuration is reified through imperative providers.)
Parser and Dispatcher
Imperative Providers
*** When authoring in PowerShell, on top of PSV3 imperative features, PSV4 adds:
• Declarative syntax extensions• Schema-driven Intellisense• Schema validation (early-binding)
Providers implement changes:• Monotonic• Imperative• Idempotent
Local Configuration
Store
![Page 18: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/18.jpg)
Components
• PowerShell Language Extensions• Used by DevOps / Operations to define and generate configuration doc, then deploy to and manage
configuration for managed nodes
• MOF Instance doc• Configuration document that is delivered to managed nodes
• WMI Service• A rich, high-performance, standards-based management stack that is suitable for a wide range of
management applications.
• Local Configuration Store• File system storage of pending, current and previous configuration
• Local Configuration Manager (LCM)• Component on the managed node that coordinates the reception and application of configuration data
for that node.
• Configuration Agent (CA)• Component that interprets configuration data and enacts any changes needed to bring the physical
system state into alignment with the expressed configuration.
• Resource Provider• Process configuration for a single resource. i.e.: Network Card, Disk, etc.
![Page 19: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/19.jpg)
Demo
Configuring the Local Configuration Manager
![Page 20: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/20.jpg)
File Download Manager• SMB File Share• Best practice to use a DFS path• Computer accounts needs read permission• Node name must be a GUID• Checksum for configuration files necessary• Local Configuration Manager configuration must be configured to use Pull mode and the
DSCFileDownloadManager
![Page 21: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/21.jpg)
Azuredc01Domain Controller
DSC SMB Pull Server
Azuremgmt01Management Server
Azureweb01Web Server
DSC Web Pull Server
Demo environment
Windows Azure
![Page 22: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/22.jpg)
Demo
Configuring Pull Server using File Download Manager
![Page 23: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/23.jpg)
Web Download Manager• Server role in Windows Server 2012 R2• Needs to be configured after installation• No inbox tooling to configure• xDscWebService resource that makes a node a DSC Pull Server available in a collection of DSC
Resources produced by the PowerShell Team• Local Configuration Manager configuration must be configured to use Pull mode and the
WebDownloadManager
![Page 24: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/24.jpg)
Demo
Configuring Pull Server using Web Download Manager
![Page 25: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/25.jpg)
DSC Resources
• Built-In Windows PowerShell Desired State Configuration Resources• http://technet.microsoft.com/en-us/library/dn249921.aspx
• Build Custom Windows PowerShell Desired State Configuration Resources• http://technet.microsoft.com/en-us/library/dn249927.aspx
• DSCPack_ResourceDesigner• http://blogs.msdn.com/b/powershell/archive/2013/11/19/resource-designer-tool-a-walkthrough-writing-a-dsc-
resource.aspx
![Page 26: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/26.jpg)
DSC Resources
• Desired State Configuration (DSC) Resource Kit • http://
blogs.msdn.com/b/powershell/archive/2013/12/26/holiday-gift-desired-state-configuration-dsc-resource-kit-wave-1.aspx
• PowerShell Community DSC Modules• https://github.com/PowerShellOrg/DSC
Resource DescriptionxComputer Name a computer and add it to a
domain/workgroupxVHD Create and managed VHDsxVMHyperV Create and manage a Hyper-V Virtual MachinexVMSwitch Create and manage a Hyper-V Virtual SwitchxDNSServerAddress Bind a DNS Server address to one or more NICxIPAddress Configure IPAddress (v4 and v6)xDSCWebService Configure DSC Service (aka Pull Server)xWebsite Deploy and configure a website on IIS
![Page 27: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/27.jpg)
Configuration and Continuous Deployment
Intent EnvironmentConfiguration(Dev -> Test -> Production)
$SystemDrive = "C:"$DemoFolder = "$SystemDrive\Demo"$global:WebServerCount = 3…
Structural Configuration
WindowsFeature IIS { Name = "Web-Server" Ensure = "Present"}…
Make It So Idempotent Automation
foreach -parallel ($featureName in $Name){ $feature = Get-WindowsFeature -Name $featureName if(($Ensure -eq "Present") -and (!$feature.Installed)) { Install-WindowsFeature -Name $featureName } ….}…
![Page 28: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/28.jpg)
Separating "What" from "Where"
http://blogs.msdn.com/b/powershell/archive/2014/01/09/continuous-deployment-using-dsc-with-minimal-change.aspx
![Page 29: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/29.jpg)
PowerShell DSC (V1)
• Declarative Configuration Syntax in PowerShell Language
• Local Configuration Manager• Receives MOF documents declaring desired state of Node• Downloads and invokes idempotent resources to reify (make it so)
• Simple “Pull Server”
• Leverages and Creates an Ecosystem
![Page 30: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/30.jpg)
Observations
• Need a language to express desired state easily• Need components with associated properties
(Types)• Need an agent to “Make It So”
• Note: Nothing said about “How”• Declarative vs Imperative
• Need Idempotence (repeatable)• Need both Push Model and Pull Model• Want to compare Actual and Expected States
![Page 31: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/31.jpg)
DSC available as part of WMF 4.0
http://social.technet.microsoft.com/wiki/contents/articles/21016.how-to-install-windows-powershell-4-0.aspx
• DSC authoring• Declarative Configuration Syntax
in PowerShell
• DSC client• Local Configuration Manager
![Page 32: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/32.jpg)
Related 3rd party products• Chef• Puppet• CFEngine
![Page 33: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/33.jpg)
Chef
www.getchef.com/chef
![Page 34: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/34.jpg)
Chef integration with DSC
http://www.getchef.com/blog/2013/08/19/opscode-chef-delivers-robust-open-source-automation-platform-for-windows-environments/
![Page 35: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/35.jpg)
Puppet
http://puppetlabs.com
![Page 36: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/36.jpg)
CFEngine
http://cfengine.com
![Page 37: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/37.jpg)
SummaryDSC
• Platform feature to build upon• Simplify configuration• Enable continuous deployment• Prevent configuration drift• Create an ecosystem
• V1 – expect rapid changes in upcoming versions
![Page 38: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/38.jpg)
Key Takeaways
• Take time to think of how you do configuration management
• Start evaluating DSC
![Page 39: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/39.jpg)
Book Recommendation• The Phoenix Project
• http://blog.powershell.no/2014/01/08/book-recommendation-the-phoenix-project/
![Page 40: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/40.jpg)
Links & Resources
• Demos and slides available here:• http://sdrv.ms/19khLBR• I`ll tweet the URL - @JanEgilRing / #nicconf
• http://technet.microsoft.com/en-us/library/dn249912.aspx• http://blogs.msdn.com/b/powershell/archive/tags/DSC• https://
connect.microsoft.com/PowerShell/SearchResults.aspx?SearchQuery=dsc
• http://powershell.org/wp/?s=dsc
![Page 41: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/41.jpg)
Microsoft Technology User Group• Server Manager Administration with Windows
PowerShell• Presenter: Aleksandar Nikolic• Location: University of Oslo• When: January 20th, 18.00
• Registration: bit.ly/19QvD1o
![Page 42: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/42.jpg)
Windows PowerShell Desired State Configuration Overview
Windows PowerShell Desired State Configuration (DSC) is a new management system in Windows PowerShell that enables the deployment and management of configuration data for software services and the environment on which these services run. To use DSC, first create a configuration script as shown below. Note that Configuration is a new keyword, which is part of the Windows PowerShell extensions for DSC. Each Configuration can have one or more Node blocks. Each Node block can have one or more resource blocks. You can use the same resource more than once in the same Node block, if you wish. 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 { Ensure = "Present" # To uninstall the role, set Ensure to "Absent" Name = "Web-Server" # Name property from Get-WindowsFeature }
# You can use the File resource to manage 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" DependsOn = "[WindowsFeature]IIS" # Use for dependencies } }}
To create a configuration, invoke the Configuration block the same way you would invoke a Windows PowerShell function, passing in any expected parameters you may have defined (two in the example above). For example, in this case:MyWebConfig -MachineName "TestMachine" –WebsiteFilePath "\\filesrv\WebFiles" ` -OutputPath "C:\Windows\system32\temp" # OutputPath is optional
This creates a MOF file known as the configuration instance document at the path you specify. You can run it using the Start-DscConfiguration cmdlet (more on that cmdlet on the flipside of this sheet).
Archive Resource Example
The Archive resource gives you a mechanism to unpack archive (.zip) files at a specific path.
Archive ArchiveExample { Ensure = "Present" # You can also set Ensure to "Absent" Path = "C:\Users\Public\Documents\Test.zip" Destination = "C:\Users\Public\Documents\ExtractionPath"}
Script Resource ExampleThe Script resource gives you a mechanism to run Windows PowerShell script blocks on target nodes. The TestScript block runs first. If it returns False, the SetScript block will run. The GetScript block will run when you invoke the Get-DscConfiguration cmdlet (more on that cmdlet on the flipside of this sheet). GetScript must return a hash table. Script ScriptExample{ SetScript = { $sw = New-Object System.IO.StreamWriter("C:\TempFolder\TestFile.txt") $sw.WriteLine("Some sample string") $sw.Close() } TestScript = { Test-Path "C:\TempFolder\TestFile.txt" } GetScript = { <# This must return a hash table #> } }
Registry Resource Example
The Registry resource gives you a mechanism to manage registry keys and values.
Registry RegistryExample{ Ensure = "Present" # You can also set Ensure to "Absent" Key = "HKEY_LOCAL_MACHINE\SOFTWARE\ExampleKey" ValueName ="TestValue" ValueData ="TestData"}
Package Resource Example
The Package resource gives you a mechanism to install and manage packages, such as MSI and setup.exe packages, on a target node.
Package PackageExample{ Ensure = "Present" # You can also set Ensure to "Absent" Path = "$Env:SystemDrive\TestFolder\TestProject.msi" Name = "TestPackage" ProductId = "663A8209-89E0-4C48-898B-53D73CA2C14B"}
Environment Resource Example
The Environment resource gives you a mechanism to manage system environment variables.
Environment EnvironmentExample{ Ensure = "Present" # You can also set Ensure to "Absent" Name = "TestEnvironmentVariable" Value = "TestValue"}
![Page 43: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/43.jpg)
Desired State Configuration Cmdlets
After you create a configuration as described in the Overview section on the flipside of this sheet, you need to enact (apply) it using the Start-DscConfiguration cmdlet. Use the following command to parse the configuration at the specified path, send each node its corresponding configuration, and enact those configurations. This cmdlet will return a Windows PowerShell Job object which can be useful for configurations that are long-running. Start-DscConfiguration -Path "C:\MyFolder" # Generated MOF file location
To send a configuration to a specific node and enact that configuration:Start-DscConfiguration -ComputerName "TestMachine" -Path "C:\MyFolder"
To make Start-DscConfiguration interactive, use the Wait parameter:Start-DscConfiguration –Verbose -Wait -Path "C:\MyFolder"
To get the current configuration:Get-DscConfiguration -CimSession $session
To restore the previous configuration:Restore-DscConfiguration -CimSession $session
Suppose you want to compare the current and actual configurations. This cmdlet returns True if the current and actual configurations match exactly and False otherwise:Test-DscConfiguration -CimSession $session
Group Resource Example
The Group resource gives you a mechanism to manage local groups on the target node. Group GroupExample{ # This will remove TestGroup, if present # To create a new group, set Ensure to "Present“ Ensure = "Absent" GroupName = "TestGroup"}
User Resource Example
The User resource gives you a mechanism to manage local user accounts on the target node.
User UserExample{ Ensure = "Present" # To delete a user account, set Ensure to "Absent" UserName = "SomeName" Password = $passwordCred # This needs to be a credential object DependsOn = “[Group]GroupExample" # Configures GroupExample first}
Service Resource Example
The Service resource gives you a mechanism to manage services on the target node.
Service ServiceExample{ Name = "TermService" StartupType = "Manual"}
Advanced Resource Properties
To see all the properties for a given resource, as well as the types of these properties, set the cursor on the resource keyword and press Ctrl + Spacebar. (The resource keywords are Registry, Script, Archive, File, WindowsFeature, Package, Environment, Group, User, Log, Service, and WindowsProcess.) All resources have a property called DependsOn that you can use to indicate when a given resource should be configured before another. See the User resource example for how to use it.
Configuration Data
This is an example of separating the node data from configuration logic. You can add more node hash tables to the AllNodes array.
$ExampleConfigData = @{ AllNodes = @( # NodeName "*" applies globally to all nodes in this array @{ NodeName = "*"; RecurseValue = $true }, @{ NodeName = "Server101"; Role = "Web"; RolesToBePresent = "Web-Server"; SourceRoot = "\\Server106\source\presentation\"; Version = "1.0"; WebDirectory = "c:\inetpub\wwwroot\"; RecurseValue = $false; } );} Configuration CloudService{ # The $AllNodes and $Node (current node) variables are automatic variables Node $AllNodes.Where("Role -eq Web").NodeName { WindowsFeature IIS { Ensure = "Present"; Name = $Node.RolesToBePresent } }} CloudService –ConfigurationData $ExampleConfigData
Local Configuration Manager
Local Configuration Manager is the DSC engine. It runs on all nodes and is responsible for calling the resources in the configuration script. You can modify the Local Configuration Manager settings of a target node by including a "LocalConfigurationManager" block inside the Node block.
LocalConfigurationManager{ RebootNodeIfNeeded = $true # Automatically reboots if required by config ConfigurationMode = “ApplyAndAutoCorrect" # Corrects configuration drift} Set the cursor on the LocalConfigurationManager keyword and press Ctrl + Spacebar to see all the properties you can set and their types. Only one Local Configuration Manager settings block can exist per Node block. When you invoke a configuration that includes a Local Configuration Manager settings block, this will create a separate MOF file for the Local Configuration Manager settings. You can then enact these settings using the following cmdlet:Set-DscLocalConfigurationManager -Path "C:\MyFolder" # Generated MOF file location
To set Local Configuration Manager settings using the MOF file for a specific node: Set-DscLocalConfigurationManager -ComputerName "MyNode" –Path "C:\MyFolder"
To get the Local Configuration Manager settings:Get-DscLocalConfigurationManager -CimSession $session
![Page 44: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/44.jpg)
Contact info
[pscustomobject] @{Name = "Jan Egil Ring"
"E-mail" = "[email protected]"Twitter = "@JanEgilRing"
Website = "blog.powershell.no"}
![Page 45: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/45.jpg)
Please evaluate the session before you leave
![Page 46: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/46.jpg)
Demo
Desired State Configuration (DSC) Resource Kit
![Page 47: Jan Egil Ring - Get started with windows power shell desired state configuration](https://reader036.vdocuments.us/reader036/viewer/2022062511/54b721704a7959b8098b46a0/html5/thumbnails/47.jpg)
How does this relate?• System Center Configuration Manager
A management solution with extensible features focused on configuring the Enterprise on-premise compute. By contrast PowerShell DSC is a platform technology focused on the Cloud (servers and standard-based devices) helping to bridge development and operations.
• System Center Virtual Machine ManagerSCVMM is a fabric controller that manages hypervisors, network and storage; creating, managing and configuring VMs and Services. SCVMM Service Model can call DSC during provisioning. SCVMM Service Model and the new Cloud OS Virtual Machine Role can leverage DSC for configuration.
• Windows PowerShellThe automation language and platform for Windows and standards-based devices. Extensively leveraged across Windows, Microsoft and the industry.• We are substantially increasing the Cloud OS capabilities of Windows Server by
adding Desired State Configuration to the base platform via PowerShell.• Overtime, just as with PowerShell original, we expect strong leverage of the
platform, making a fully integrated, better together story.