{"id":56969,"date":"2026-02-05T09:36:24","date_gmt":"2026-02-04T23:36:24","guid":{"rendered":"https:\/\/www.cloudproinc.com.au\/?p=56969"},"modified":"2026-02-05T09:40:01","modified_gmt":"2026-02-04T23:40:01","slug":"automate-dev-machine-setup-with-winget-configuration","status":"publish","type":"post","link":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/","title":{"rendered":"Automate Dev Machine Setup with WinGet Configuration"},"content":{"rendered":"\n<p>In this blog post <strong>Automate Dev Machine Setup with WinGet Configuration on Windows<\/strong> we will walk through how to turn a brand-new Windows laptop into a ready-to-code dev machine using a single, repeatable command. If you\u2019ve ever copied a checklist from Confluence, installed 20 tools by hand, then spent hours fixing \u201cit works on my machine\u201d gaps, WinGet Configuration is built for you.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>At a high level, WinGet Configuration is \u201cinfrastructure as code\u201d for developer workstations. You describe the <em>desired state<\/em> of a machine (apps, tools, and certain settings) in a YAML file, then Windows applies it consistently. That means faster onboarding, fewer missed steps, and a clean path to standardising environments across teams\u2014without turning every dev into a Windows packaging expert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-winget-configuration\">What is WinGet Configuration<\/h2>\n\n\n\n<p>WinGet is Microsoft\u2019s Windows Package Manager. Most people know it for installing apps with commands like <code>winget install<\/code>. WinGet Configuration extends that idea: instead of installing one tool at a time, you apply an entire development environment definition in one go.<\/p>\n\n\n\n<p>Microsoft\u2019s <code>winget configure<\/code> command reads a configuration file and brings the machine to that desired state. It can install packages, set up dependencies, and apply configuration through DSC resources (Desired State Configuration). It\u2019s designed to be <strong>declarative<\/strong>: you define <em>what you want<\/em>, not a fragile script of steps to run in the \u201cright order\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-technology-behind-it-how-it-actually-works\">The technology behind it (how it actually works)<\/h2>\n\n\n\n<p>WinGet Configuration combines three key pieces:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A YAML configuration file<\/strong> that defines the desired state. It uses a schema so editors can validate the structure and help with autocomplete.<\/li>\n\n\n\n<li><strong>WinGet<\/strong> (Windows Package Manager) to install and manage software packages.<\/li>\n\n\n\n<li><strong>DSC resources<\/strong> (Desired State Configuration) to apply settings in a predictable way, rather than relying only on ad-hoc scripting. WinGet can download the required modules\/resources as part of the run.<\/li>\n<\/ul>\n\n\n\n<p>In practice, the flow looks like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You run <code>winget configure -f yourfile.winget<\/code>.<\/li>\n\n\n\n<li>WinGet parses and validates the file.<\/li>\n\n\n\n<li>It resolves and downloads any required configuration resources (DSC modules\/resources).<\/li>\n\n\n\n<li>It checks your current state and applies only what\u2019s needed to reach the desired state.<\/li>\n<\/ul>\n\n\n\n<p>This \u201cdesired state\u201d model is the big win. Re-running the same config is normal and expected\u2014useful for drift correction after a dev machine has been used for months.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-prerequisites-and-versions-don-t-skip-this\">Prerequisites and versions (don\u2019t skip this)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OS:<\/strong> Windows 10 1809 (build 17763) or later, or Windows 11.<\/li>\n\n\n\n<li><strong>WinGet:<\/strong> WinGet version <strong>1.6.2631 or later<\/strong> for <code>winget configure<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>These requirements matter because older WinGet builds may not understand configuration files or may behave differently. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-it-leaders-and-dev-teams-should-care\">Why IT leaders and dev teams should care<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Faster onboarding:<\/strong> new starters can be productive the same day.<\/li>\n\n\n\n<li><strong>Consistency:<\/strong> standard toolchains reduce \u201cworks on my machine\u201d issues.<\/li>\n\n\n\n<li><strong>Auditability:<\/strong> your dev machine baseline becomes a versioned file in Git.<\/li>\n\n\n\n<li><strong>Scalability:<\/strong> one definition can support dozens or hundreds of endpoints.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-authoring-a-winget-configuration-file\">Authoring a WinGet Configuration file<\/h2>\n\n\n\n<p>WinGet Configuration files are YAML. Microsoft also recommends using VS Code with a YAML extension so schema validation catches formatting mistakes early.<\/p>\n\n\n\n<p>Here\u2019s a practical starter example you can adapt for a typical developer setup (Git, VS Code, Windows Terminal, PowerShell, containers tooling). The exact IDs can differ by organisation, so treat this as a pattern.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#$schema: https:\/\/aka.ms\/winget-configuration.schema.json\n\nproperties:\n configurationVersion: 1.0.0\n\nresources:\n - resource: Microsoft.WinGet.DSC\/WinGetPackage\n id: install-git\n directives:\n description: Install Git\n settings:\n id: Git.Git\n\n - resource: Microsoft.WinGet.DSC\/WinGetPackage\n id: install-vscode\n directives:\n description: Install Visual Studio Code\n settings:\n id: Microsoft.VisualStudioCode\n\n - resource: Microsoft.WinGet.DSC\/WinGetPackage\n id: install-windows-terminal\n directives:\n description: Install Windows Terminal\n settings:\n id: Microsoft.WindowsTerminal\n\n - resource: Microsoft.WinGet.DSC\/WinGetPackage\n id: install-powershell\n directives:\n description: Install PowerShell 7\n settings:\n id: Microsoft.PowerShell\n<\/code><\/pre>\n\n\n\n<p>What\u2019s going on here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>resources<\/strong> is the list of desired outcomes.<\/li>\n\n\n\n<li><code>Microsoft.WinGet.DSC\/WinGetPackage<\/code> is a resource type that installs software packages via WinGet.<\/li>\n\n\n\n<li><code>settings.id<\/code> is typically the WinGet package ID you\u2019d use with <code>winget install<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-naming-and-storing-the-file\">Naming and storing the file<\/h3>\n\n\n\n<p>Microsoft\u2019s guidance is to use the <code>.winget<\/code> extension (for example, <code>configuration.winget<\/code>) and, for Git-based projects, store the default configuration under <code>.\/config\/configuration.winget<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-running-the-configuration\">Running the configuration<\/h2>\n\n\n\n<p>Once the file is ready:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inspect the file<\/strong> (and any referenced modules\/resources) before executing.<\/li>\n\n\n\n<li>Preview details:<br><pre><code>winget configure show -f .\\config\\configuration.winget<\/code><\/pre><\/li>\n\n\n\n<li>Validate the file structure:<br><pre><code>winget configure validate -f .\\config\\configuration.winget<\/code><\/pre> <\/li>\n\n\n\n<li>Test compliance (see what would change):<br><pre><code>winget configure test -f .\\config\\configuration.winget<\/code><\/pre> Apply it:<br><pre><code>winget configure -f .\\config\\configuration.winget<\/code><\/pre><\/li>\n<\/ul>\n\n\n\n<p>These subcommands are part of the WinGet configure workflow and help you treat the config like a real deployment artifact rather than a \u201chope this works\u201d script. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-handling-admin-required-steps-cleanly-uac-once-not-10-times\">Handling admin-required steps cleanly (UAC once, not 10 times)<\/h2>\n\n\n\n<p>Some machine setup steps require elevation (admin rights). Recent WinGet previews introduced an experimental capability to handle elevation more gracefully during configuration runs. With the right experimental feature enabled, you can mark specific resources to run elevated and avoid repeated prompts. (newreleases.io)<\/p>\n\n\n\n<p>In practice, this can make a big difference for developer experience, especially when onboarding a laptop that needs a mix of user-scoped tools and system-scoped prerequisites.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-practical-patterns-for-real-teams\">Practical patterns for real teams<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-split-baseline-and-project-configs\">1) Split \u201cbaseline\u201d and \u201cproject\u201d configs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Baseline config:<\/strong> OS-level and common tools (Terminal, Git, browsers, security tools, editors).<\/li>\n\n\n\n<li><strong>Project config:<\/strong> language SDKs, CLIs, local databases, emulators, and project-specific tooling.<\/li>\n<\/ul>\n\n\n\n<p>This keeps your baseline stable while letting teams iterate quickly on their own stacks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-put-configs-in-git-and-version-them\">2) Put configs in Git and version them<\/h3>\n\n\n\n<p>Treat your <code>.winget<\/code> file like application code:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pull requests for changes<\/li>\n\n\n\n<li>Code review for new packages\/resources<\/li>\n\n\n\n<li>Tagged releases for known-good onboarding baselines<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-use-test-in-ci-before-you-roll-it-out\">3) Use \u201ctest\u201d in CI before you roll it out<\/h3>\n\n\n\n<p>A simple pipeline job can run validation checks (and, where possible, apply the config in a disposable VM). If the config breaks, you catch it before the next new starter does.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-security-and-trust-a-quick-but-important-word\">Security and trust (a quick but important word)<\/h2>\n\n\n\n<p>Configuration files can install software and apply system changes. That\u2019s powerful, and it also means you should treat configs as privileged artifacts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Only run configs from sources you trust.<\/li>\n\n\n\n<li>Review changes in PRs.<\/li>\n\n\n\n<li>Prefer internal mirrors or approved repositories for critical tooling.<\/li>\n\n\n\n<li>Test in an isolated environment before broad rollout.<\/li>\n<\/ul>\n\n\n\n<p>Microsoft explicitly warns to review configuration contents and verify credibility before running.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-troubleshooting-tips-that-save-time\">Troubleshooting tips that save time<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check WinGet version:<\/strong> <code>winget --version<\/code>. If it\u2019s older than required, update App Installer.<\/li>\n\n\n\n<li><strong>Open logs:<\/strong> <code>winget configure --logs<\/code> to jump to the logs folder.<\/li>\n\n\n\n<li><strong>Corporate networks:<\/strong> Store access\/proxy\/SSL inspection can impact downloads. If you\u2019re in a locked-down enterprise, validate connectivity to the sources your configuration needs.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-where-winget-configuration-fits-in-your-automation-stack\">Where WinGet Configuration fits in your automation stack<\/h2>\n\n\n\n<p>WinGet Configuration is not trying to replace endpoint management (Intune), server configuration tooling, or full platform automation. It shines in a very specific gap: <strong>repeatable developer workstation setup<\/strong> with a friendly, Windows-native workflow.<\/p>\n\n\n\n<p>If your team already uses Intune, you can still use WinGet Configuration as a developer-focused layer: IT owns the secure baseline, and engineering owns the project toolchain definition\u2014with both expressed as code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-next-steps\">Next steps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a baseline <code>configuration.winget<\/code> for your standard dev machine.<\/li>\n\n\n\n<li>Run <code>winget configure validate<\/code> and <code>winget configure test<\/code> on a clean VM.<\/li>\n\n\n\n<li>Pilot with one team, then iterate.<\/li>\n\n\n\n<li>Move it into Git, add review gates, and make onboarding a one-command experience.<\/li>\n<\/ul>\n\n\n\n<p>Done well, WinGet Configuration becomes the quiet hero of onboarding: less tribal knowledge, fewer manual steps, and more time spent building.<\/p>\n\n\n\n<ul class=\"wp-block-yoast-seo-related-links yoast-seo-related-links\">\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2025\/07\/02\/use-dev-containers-for-net-development\/\">Use Dev Containers for .NET Development<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/07\/05\/boosting-intune-machine-policy-updates-from-8-hours-to-30-minutes\/\">Boosting Intune Machine Policy Updates from 8 Hours to 30 Minutes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/05\/06\/email-setup-for-managed-devices-with-intune-office-365-mail-configuration\/\">Email Setup for Managed Devices with Intune: Office 365 Mail Configuration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.cloudproinc.com.au\/index.php\/2024\/03\/28\/streamlining-office-365-email-setup-on-managed-devices-with-microsoft-intune\/\">Streamlining Office 365 Email Setup on Managed Devices with Microsoft Intune<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/20\/how-to-secure-api-keys-with-python\/\">How to Secure API Keys with Python<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>WinGet Configuration turns dev machine setup into a repeatable, one-command workflow. Learn how it works, how to write a config, and how to apply it safely in teams.<\/p>\n","protected":false},"author":1,"featured_media":56970,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"Automate Dev Machine Setup with WinGet Configuration","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13],"tags":[],"class_list":["post-56969","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Automate Dev Machine Setup with WinGet Configuration - CPI Consulting<\/title>\n<meta name=\"description\" content=\"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automate Dev Machine Setup with WinGet Configuration\" \/>\n<meta property=\"og:description\" content=\"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/\" \/>\n<meta property=\"og:site_name\" content=\"CPI Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-04T23:36:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-04T23:40:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2026\/02\/post-10.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"CPI Staff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"CPI Staff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/\"},\"author\":{\"name\":\"CPI Staff\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\"},\"headline\":\"Automate Dev Machine Setup with WinGet Configuration\",\"datePublished\":\"2026-02-04T23:36:24+00:00\",\"dateModified\":\"2026-02-04T23:40:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/\"},\"wordCount\":1124,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/post-10.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/\",\"name\":\"Automate Dev Machine Setup with WinGet Configuration - CPI Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#primaryimage\"},\"thumbnailUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/post-10.png\",\"datePublished\":\"2026-02-04T23:36:24+00:00\",\"dateModified\":\"2026-02-04T23:40:01+00:00\",\"description\":\"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#primaryimage\",\"url\":\"\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/post-10.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/post-10.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/2026\\\/02\\\/05\\\/automate-dev-machine-setup-with-winget-configuration\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cloudproinc.com.au\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automate Dev Machine Setup with WinGet Configuration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#website\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/\",\"name\":\"Cloud Pro Inc - CPI Consulting Pty Ltd\",\"description\":\"Cloud, AI &amp; Cybersecurity Consulting | Melbourne\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudproinc.com.au\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#organization\",\"name\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\",\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"contentUrl\":\"\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/favfinalfile.png\",\"width\":500,\"height\":500,\"caption\":\"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cloudproinc.com.au\\\/#\\\/schema\\\/person\\\/192eeeb0ce91062126ce3822ae88fe6e\",\"name\":\"CPI Staff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g\",\"caption\":\"CPI Staff\"},\"sameAs\":[\"http:\\\/\\\/www.cloudproinc.com.au\"],\"url\":\"https:\\\/\\\/cloudproinc.com.au\\\/index.php\\\/author\\\/cpiadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Automate Dev Machine Setup with WinGet Configuration - CPI Consulting","description":"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/","og_locale":"en_US","og_type":"article","og_title":"Automate Dev Machine Setup with WinGet Configuration","og_description":"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.","og_url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/","og_site_name":"CPI Consulting","article_published_time":"2026-02-04T23:36:24+00:00","article_modified_time":"2026-02-04T23:40:01+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/cloudproinc.com.au\/wp-content\/uploads\/2026\/02\/post-10.png","type":"image\/png"}],"author":"CPI Staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"CPI Staff","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#article","isPartOf":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/"},"author":{"name":"CPI Staff","@id":"https:\/\/cloudproinc.com.au\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e"},"headline":"Automate Dev Machine Setup with WinGet Configuration","datePublished":"2026-02-04T23:36:24+00:00","dateModified":"2026-02-04T23:40:01+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/"},"wordCount":1124,"commentCount":0,"publisher":{"@id":"https:\/\/cloudproinc.com.au\/#organization"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/02\/post-10.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/","url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/","name":"Automate Dev Machine Setup with WinGet Configuration - CPI Consulting","isPartOf":{"@id":"https:\/\/cloudproinc.com.au\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#primaryimage"},"image":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2026\/02\/post-10.png","datePublished":"2026-02-04T23:36:24+00:00","dateModified":"2026-02-04T23:40:01+00:00","description":"Simplify your dev machine setup with WinGet Configuration. Automate installations and create a consistent coding environment.","breadcrumb":{"@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#primaryimage","url":"\/wp-content\/uploads\/2026\/02\/post-10.png","contentUrl":"\/wp-content\/uploads\/2026\/02\/post-10.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/cloudproinc.com.au\/index.php\/2026\/02\/05\/automate-dev-machine-setup-with-winget-configuration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cloudproinc.com.au\/"},{"@type":"ListItem","position":2,"name":"Automate Dev Machine Setup with WinGet Configuration"}]},{"@type":"WebSite","@id":"https:\/\/cloudproinc.com.au\/#website","url":"https:\/\/cloudproinc.com.au\/","name":"Cloud Pro Inc - CPI Consulting Pty Ltd","description":"Cloud, AI &amp; Cybersecurity Consulting | Melbourne","publisher":{"@id":"https:\/\/cloudproinc.com.au\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudproinc.com.au\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudproinc.com.au\/#organization","name":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd","url":"https:\/\/cloudproinc.com.au\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudproinc.com.au\/#\/schema\/logo\/image\/","url":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","contentUrl":"\/wp-content\/uploads\/2022\/01\/favfinalfile.png","width":500,"height":500,"caption":"Cloud Pro Inc - Cloud Pro Inc - CPI Consulting Pty Ltd"},"image":{"@id":"https:\/\/cloudproinc.com.au\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudproinc.com.au\/#\/schema\/person\/192eeeb0ce91062126ce3822ae88fe6e","name":"CPI Staff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2d96eeb53b791d92c8c50dd667e3beec92c93253bb6ff21c02cfa8ca73665c70?s=96&d=mm&r=g","caption":"CPI Staff"},"sameAs":["http:\/\/www.cloudproinc.com.au"],"url":"https:\/\/cloudproinc.com.au\/index.php\/author\/cpiadmin\/"}]}},"jetpack_featured_media_url":"\/wp-content\/uploads\/2026\/02\/post-10.png","jetpack-related-posts":[{"id":457,"url":"https:\/\/cloudproinc.com.au\/index.php\/2024\/07\/29\/streamlining-entra-id-app-registrations-with-azure-bicep\/","url_meta":{"origin":56969,"position":0},"title":"Streamlining Entra ID App Registrations with Azure Bicep","author":"CPI Staff","date":"July 29, 2024","format":false,"excerpt":"In this Azure Bicep and Entra ID, we will show you how to create an Entra ID App Registration using Azure Bicep. Entra ID (formerly Azure Active Directory) is Microsoft's Azure and Microsoft 355 authentication and authorization service, handling all login events to both services. App Registrations in Entra ID\u2026","rel":"","context":"In &quot;Azure&quot;","block_context":{"text":"Azure","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/microsoft-azure\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Streamlining-Entra-ID-App-Registrations-with-Azure-Bicep.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Streamlining-Entra-ID-App-Registrations-with-Azure-Bicep.webp 1x, \/wp-content\/uploads\/2024\/07\/Streamlining-Entra-ID-App-Registrations-with-Azure-Bicep.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Streamlining-Entra-ID-App-Registrations-with-Azure-Bicep.webp 2x"},"classes":[]},{"id":395,"url":"https:\/\/cloudproinc.com.au\/index.php\/2024\/07\/21\/retrieving-azure-ai-services-keys-and-endpoints-using-bicep\/","url_meta":{"origin":56969,"position":1},"title":"Retrieving Azure AI Services Keys and Endpoints Using Bicep","author":"CPI Staff","date":"July 21, 2024","format":false,"excerpt":"This Azure AI Services post will show how to retrieve Azure AI Services keys and Endpoint using Bicep deployment code. If you are not familiar with Azure Bicep, it is a Specific Domain Language (DSL) for infrastructure-as-code (iac) deployments in Azure only. Unlike other tools like Terraform, Bicep offers access\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Azure-AI-endpoint-and-key-output-using-Bicep.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Azure-AI-endpoint-and-key-output-using-Bicep.webp 1x, \/wp-content\/uploads\/2024\/07\/Azure-AI-endpoint-and-key-output-using-Bicep.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Azure-AI-endpoint-and-key-output-using-Bicep.webp 2x"},"classes":[]},{"id":53786,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/09\/08\/read-json-files-from-azure-app-configuration\/","url_meta":{"origin":56969,"position":2},"title":"Read JSON Files from Azure App Configuration","author":"CPI Staff","date":"September 8, 2025","format":false,"excerpt":"This post walks through the steps of reading JSON files from Azure App Configuration, complete with explanations and code samples. Modern cloud applications often rely on configuration management systems to centralize and secure application settings. Azure App Configuration is one such service that allows developers to store and manage configurations\u2026","rel":"","context":"In &quot;Azure&quot;","block_context":{"text":"Azure","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/microsoft-azure\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png 1x, \/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png 1.5x, \/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png 2x, \/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png 3x, \/wp-content\/uploads\/2025\/09\/read-json-files-from-azure-app-configuration.png 4x"},"classes":[]},{"id":56874,"url":"https:\/\/cloudproinc.com.au\/index.php\/2026\/01\/13\/microsoft-aspire-vs-kubernetes\/","url_meta":{"origin":56969,"position":3},"title":"Microsoft Aspire vs Kubernetes","author":"CPI Staff","date":"January 13, 2026","format":false,"excerpt":"Microsoft Aspire speeds up local app orchestration and developer workflows, while Kubernetes runs production workloads at scale. Here\u2019s how to choose, and how they work together.","rel":"","context":"In &quot;Aspire&quot;","block_context":{"text":"Aspire","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/aspire\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2026\/01\/post-4.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2026\/01\/post-4.png 1x, \/wp-content\/uploads\/2026\/01\/post-4.png 1.5x, \/wp-content\/uploads\/2026\/01\/post-4.png 2x, \/wp-content\/uploads\/2026\/01\/post-4.png 3x, \/wp-content\/uploads\/2026\/01\/post-4.png 4x"},"classes":[]},{"id":53439,"url":"https:\/\/cloudproinc.com.au\/index.php\/2025\/07\/02\/use-dev-containers-for-net-development\/","url_meta":{"origin":56969,"position":4},"title":"Use Dev Containers for .NET Development","author":"CPI Staff","date":"July 2, 2025","format":false,"excerpt":"In this blog post, we\u2019ll show you how to use Dev Containers for .NET development. Table of contentsWhy Use Dev Containers?RequirementsGetting StartedDevelopment in a Dev ContainerSummary The VS Code Dev Containers extension allows you to develop .NET and other applications inside a containerized environment that is isolated from your host\u2026","rel":"","context":"In &quot;.NET&quot;","block_context":{"text":".NET","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/net\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png 1x, \/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png 1.5x, \/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png 2x, \/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png 3x, \/wp-content\/uploads\/2025\/05\/Add-Bootstrap-icons-dc.png 4x"},"classes":[]},{"id":430,"url":"https:\/\/cloudproinc.com.au\/index.php\/2024\/07\/25\/deploy-azure-openai-gpt-4o-resource-and-model-using-bicep\/","url_meta":{"origin":56969,"position":5},"title":"Deploy Azure OpenAI GPT-4o Resource and Model using Bicep","author":"CPI Staff","date":"July 25, 2024","format":false,"excerpt":"This Microsoft Azure OpenAI article will show how to deploy Azure OpenAI GPT-4o Resource and Model using Bice. Azure OpenAI is a Microsoft implementation of the popular OpenAI service and AI models. Using Azure OpenAI, companies can use OpenAI's LLMs with Azure infrastructure, tools, and security and compliance services. It\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/cloudproinc.com.au\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"\/wp-content\/uploads\/2024\/07\/Deploy-Azure-OpenAI-GPT-4o-Resource-and-Model-using-Bicep.webp","width":350,"height":200,"srcset":"\/wp-content\/uploads\/2024\/07\/Deploy-Azure-OpenAI-GPT-4o-Resource-and-Model-using-Bicep.webp 1x, \/wp-content\/uploads\/2024\/07\/Deploy-Azure-OpenAI-GPT-4o-Resource-and-Model-using-Bicep.webp 1.5x, \/wp-content\/uploads\/2024\/07\/Deploy-Azure-OpenAI-GPT-4o-Resource-and-Model-using-Bicep.webp 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/56969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=56969"}],"version-history":[{"count":3,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/56969\/revisions"}],"predecessor-version":[{"id":56981,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/posts\/56969\/revisions\/56981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media\/56970"}],"wp:attachment":[{"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=56969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/categories?post=56969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudproinc.com.au\/index.php\/wp-json\/wp\/v2\/tags?post=56969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}