Now Open Source: Simplify authoring custom machine configuration policy using the Powershell module!

Posted by

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.

Following the open sourcing of nxtools, we are excited to expand our suite of open-source features by making the GitHub repository of the Guest Configuration PowerShell Module publicly available!  


The GuestConfiguration PowerShell module provides commands that assist authors in creating, testing, and publishing custom machine configuration policies to manage settings inside Azure virtual machines and Arc-enabled servers at scale across both Windows and Linux. 


Tasks that the Guest Configuration module automates include: 

  • Programmatic organizing of your compiled DSC resources and configuration files into the structure required by our agent. 
  • Testing the functionality of your custom controls locally ahead of publishing them at cloud scale 
  • Publishing custom configuration packages to any desired storage location in an aided and simplified process.   
  • Simplified authoring of custom policies. Our new-GuestConfigurationPolicy cmdlet generates your policy definition automatically, making it easier to shift from cloud to cloud with agility.   
  • Publishing of new Azure Policy definitions to your Az Context and deploy to any available scope, leveraging gradual rollout features including resource selectors and exemptions. 




With this release, you have clear channels to dialogue directly from the Machine Configuration team and other members in our community on any topic of your choosing. For this module, we will provide support in GitHub via best effort. When creating issues, you can report bugs, suggest documentation updates raise feature requests, and engage in community discussions about our module. You are also able to fork the repository to further customize the tooling that the module provides better suited for your use cases. 


How do I get started? 


The agent binaries are added to the module when it is published to the PowerShell Gallery. The module will not be functional if it is installed by cloning the GitHub repo. 

To install from the PowerShell gallery using PowerShellGet run the following command: 



Install-Module -Name GuestConfiguration -Repository PSGallery





The minimum PowerShell version is PowerShell 5.0 for Windows and 7.2 preview 6 for Linux. 


To use Machine Configuration, the machine configuration extension and a managed identity are required to manage Azure virtual machines. The extension isn't required for Arc-enabled servers because it's included in the Arc Connected Machine agent. More information about Machine Configuration requirements can be found here. 


Where can I find more? 

All of the above information plus more details about the Guest Configuration module can be found in our GCModule GitHub repo README. 

Learn more about Machine Configuration in the documentation. 


Please note that the use of Automanage Machine Configuration on Azure Arc-enabled servers will incur a charge of $6/server/month. You only pay the charge once no matter how many machine configuration policies you apply to the server. If policies are assigned by Microsoft Defender for Servers Plan 2 or the policy is an Azure Security Benchmark, no charges will be incurred. Additionally, if Azure Change Tracking or Inventory Management are being used or the server is on Azure Stack HCI with Connected Machine agent version 1.13, no charges will be incurred. 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.