<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows 365 Archives - Jens Du Four</title>
	<atom:link href="https://jensdufour.be/tag/windows-365/feed/" rel="self" type="application/rss+xml" />
	<link>https://jensdufour.be/tag/windows-365/</link>
	<description>Connecting you to the cloud, one endpoint at a time!</description>
	<lastBuildDate>Wed, 01 Apr 2026 12:24:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Automating New Device Setup with Nerdio Scripted Sequences</title>
		<link>https://jensdufour.be/2026/04/01/automating-new-device-setup-with-nerdio-scripted-sequences/</link>
					<comments>https://jensdufour.be/2026/04/01/automating-new-device-setup-with-nerdio-scripted-sequences/#respond</comments>
		
		<dc:creator><![CDATA[Jens Du Four]]></dc:creator>
		<pubDate>Tue, 31 Mar 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Intune]]></category>
		<category><![CDATA[Nerdio]]></category>
		<category><![CDATA[NME]]></category>
		<category><![CDATA[Scripted Sequences]]></category>
		<category><![CDATA[Windows 365]]></category>
		<guid isPermaLink="false">https://jensdufour.be/?p=1009</guid>

					<description><![CDATA[<p>Use Nerdio Scripted Sequences to automate multi-step device setup on Windows 365 and Intune devices. Includes a real-world developer onboarding demo.</p>
<p>The post <a href="https://jensdufour.be/2026/04/01/automating-new-device-setup-with-nerdio-scripted-sequences/">Automating New Device Setup with Nerdio Scripted Sequences</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">Setting up a new device for a developer usually means installing tools, cloning repositories, and applying configurations, <strong>all in a specific order</strong>. <a href="https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/what-is-intune">Microsoft Intune</a> handles app and script deployment well, but it does not guarantee execution order. A Git install that finishes after the script that clones your repos is a problem.</p>



<p class="wp-block-paragraph"><strong>Nerdio Scripted Sequences</strong> solve this. Introduced in <a href="https://getnerdio.com/">Nerdio Manager for Enterprise</a> (NME), Scripted Sequences let you define complex, multi-step task workflows with a guaranteed order of operations. They target Intune-managed devices, including <a href="https://learn.microsoft.com/en-us/windows-365/overview">Windows 365</a> Cloud PCs, and execute tasks sequentially through the Nerdio Endpoint Worker.</p>



<p class="wp-block-paragraph">In this post we will build a real-world <strong>developer workstation onboarding sequence</strong> that installs Git, Visual Studio Code, clones team repositories, and confirms completion, all in the right order, every time.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> Scripted Sequences are in Public Preview. Feature scope and limitations may change in future NME releases.</p>
</blockquote>



<h2 class="wp-block-heading">What Are Scripted Sequences?</h2>



<p class="wp-block-paragraph">Scripted Sequences are an automation feature in NME that lets you create multi-step task workflows deployed to Intune-managed devices. Think of them as a lightweight task sequencer built into the Nerdio console.</p>



<p class="wp-block-paragraph">Key characteristics:</p>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Aspect</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Supported targets</strong></td>
<td>Intune-managed devices, including Windows 365 Cloud PCs</td>
</tr>
<tr>
<td><strong>Execution engine</strong></td>
<td>Nerdio Endpoint Worker (deployed via Intune platform script)</td>
</tr>
<tr>
<td><strong>Concurrency limit</strong></td>
<td>100 concurrent tasks per sequence</td>
</tr>
<tr>
<td><strong>Task types</strong></td>
<td>PowerShell scripts, Winget installs, and other Intune-deliverable actions</td>
</tr>
</tbody>
</table></figure>



<p class="wp-block-paragraph">Sequences respect the defined order of operations: Task 2 will not start until Task 1 completes successfully. Tasks can be grouped into <strong>Task Groups</strong> for logical organization. You can <strong>clone</strong> sequences, groups, and individual tasks for faster iteration.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<p class="wp-block-paragraph">Before building your first sequence, make sure you have:</p>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Requirement</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Intune integration</strong></td>
<td>Enabled in NME under <strong>Settings &gt; Environment &gt; Integrations &gt; Intune</strong></td>
</tr>
<tr>
<td><strong>Target device</strong></td>
<td>A Windows 365 Cloud PC or Intune-managed Windows device</td>
</tr>
<tr>
<td><strong>Nerdio Endpoint Worker</strong></td>
<td>Deployed to the target device (covered in Step 1)</td>
</tr>
<tr>
<td><strong>Permissions</strong></td>
<td>NME admin role with access to the Automation module</td>
</tr>
</tbody>
</table></figure>



<h2 class="wp-block-heading">The Demo Scenario</h2>



<p class="wp-block-paragraph">We will automate day-one setup for a developer joining the team. The sequence installs prerequisites first, then tools, then runs a configuration script, in that exact order.</p>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Order</th>
<th>Task</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Set PowerShell Execution Policy</td>
<td>Allow scripts to run (RemoteSigned)</td>
</tr>
<tr>
<td>2</td>
<td>Install Git</td>
<td>Version control tooling</td>
</tr>
<tr>
<td>3</td>
<td>Install Visual Studio Code</td>
<td>Code editor</td>
</tr>
<tr>
<td>4</td>
<td>Clone repos and configure VS Code</td>
<td>Pull team repos and install extensions</td>
</tr>
<tr>
<td>5a</td>
<td>Add registry key</td>
<td>Create the completion marker key</td>
</tr>
<tr>
<td>5b</td>
<td>Set registry value</td>
<td>Confirm the sequence finished</td>
</tr>
</tbody>
</table></figure>



<p class="wp-block-paragraph">Let&#8217;s build it.</p>



<h2 class="wp-block-heading">Step 1: Enable the Intune Integration</h2>



<p class="wp-block-paragraph">Before you can use Scripted Sequences, the Intune integration must be enabled. This is where NME connects to your Intune tenant.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>NME</strong> &gt; <strong>Settings</strong> &gt; <strong>Environment</strong> &gt; <strong>Integrations</strong> &gt; <strong>Intune</strong>.</li>


<li>Ensure the Intune integration is enabled.</li>

</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> The initial Endpoint Worker deployment is controlled by Intune platform script delivery and may take some time. Subsequent tasks to the same device execute within a 15 to 30 minute window.</p>
</blockquote>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e587b5&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e587b5" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Nerdio Endpoint Worker deployment status in the NME console." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-01.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Step 2: Configure Task Automation</h2>



<p class="wp-block-paragraph">Task Automation must be configured before you can create or run Scripted Sequences.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>NME</strong> &gt; <strong>Settings</strong> &gt; <strong>Nerdio Environment</strong> &gt; <strong>Task Automation</strong>.</li>


<li>Click <strong>Configure</strong>.</li>


<li>Enter a name and select a resource group for the Azure storage account that Nerdio Manager will create.</li>


<li>Click <strong>Save</strong> to complete the configuration.</li>

</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Warning:</strong> If your NME deployment uses the <strong>Enable Private Endpoints</strong> scripted action, the storage account created here may have public network access disabled by default. The Nerdio Endpoint Worker on target devices needs to reach this storage account, so verify that public access is enabled or that a private endpoint is configured for it.</p>
</blockquote>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e58a8c&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e58a8c" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Configuring Task Automation in the NME console." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-02.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Step 3: Create the Scripted Sequence</h2>



<ol class="wp-block-list">

<li>Navigate to <strong>NME</strong> &gt; <strong>Automation</strong> &gt; <strong>Scripted Sequences</strong>.</li>


<li>Click <strong>New Scripted Sequence</strong>.</li>


<li>Name the sequence <code>Developer Onboarding - Day One</code>.</li>


<li>Optionally add a description: <em>Installs developer tools and configures the workstation on first login.</em></li>

</ol>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e58c76&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e58c76" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Creating a new Scripted Sequence in the NME console." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-03.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Step 4: Add a Task Group</h2>



<p class="wp-block-paragraph">Task Groups let you organize related tasks. We will create one group for this sequence.</p>



<ol class="wp-block-list">

<li>Inside the sequence, click <strong>Add task or Add group</strong>.</li>


<li>Select <strong>Add group</strong>.</li>


<li>Name the group <code>Developer Tooling</code>.</li>

</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> A group must contain at least one task.</p>
</blockquote>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e58f08&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e58f08" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Adding a Task Group to the sequence." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-04.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Step 5: Define the Tasks</h2>



<p class="wp-block-paragraph">Add the following six tasks inside the <strong>Developer Tooling</strong> group. The order you add them is the order they will execute.</p>



<h3 class="wp-block-heading">Task 1: Set PowerShell Execution Policy</h3>



<p class="wp-block-paragraph">This ensures all subsequent PowerShell-based tasks can run.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Set Execution Policy</code></li>


<li><strong>Type:</strong> PowerShell script</li>


<li><strong>Script:</strong></li>

</ul>



<pre class="wp-block-code"><code>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force
</code></pre>



<h3 class="wp-block-heading">Task 2: Install Git</h3>



<p class="wp-block-paragraph">This task uses a PowerShell script to install Git via winget. You could also use the <strong>Install Application</strong> task type instead.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Install Git</code></li>


<li><strong>Type:</strong> PowerShell script</li>


<li><strong>Script:</strong></li>

</ul>



<pre class="wp-block-code"><code>winget install --id Git.Git --accept-source-agreements --accept-package-agreements --silent
</code></pre>



<h3 class="wp-block-heading">Task 3: Install Visual Studio Code</h3>



<p class="wp-block-paragraph">This task uses the <strong>Install Application</strong> task type, which lets you select a winget package directly without writing a script. You could also use a PowerShell script as shown in Task 2.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Install Visual Studio Code</code></li>


<li><strong>Type:</strong> Install Application</li>


<li><strong>Winget package ID:</strong> <code>Microsoft.VisualStudioCode</code></li>

</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5933d&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5933d" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Using the Install Application task type to install VS Code." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-05.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h3 class="wp-block-heading">Task 4: Clone Repos and Configure VS Code</h3>



<p class="wp-block-paragraph">This script clones the team repository and installs essential VS Code extensions. Adjust the repository URL and extension list to match your environment.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Configure Workstation</code></li>


<li><strong>Type:</strong> PowerShell script</li>


<li><strong>Script:</strong></li>

</ul>



<pre class="wp-block-code"><code># Refresh PATH so git and code are available
$env:Path = [System.Environment]::GetEnvironmentVariable(&quot;Path&quot;, &quot;Machine&quot;) + &quot;;&quot; + [System.Environment]::GetEnvironmentVariable(&quot;Path&quot;, &quot;User&quot;)

# Clone team repository
$repoPath = &quot;$env:USERPROFILE\Source\Repos&quot;
New-Item -ItemType Directory -Path $repoPath -Force | Out-Null
git clone https://dev.azure.com/contoso/project/_git/main-repo &quot;$repoPath\main-repo&quot;

# Install VS Code extensions
code --install-extension ms-vscode.powershell
code --install-extension ms-python.python
code --install-extension hashicorp.terraform
</code></pre>



<h3 class="wp-block-heading">Task 5a: Add Registry Key</h3>



<p class="wp-block-paragraph">First, create the registry key that will hold the completion marker.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Log Completion</code></li>


<li><strong>Action:</strong> Add Registry Key</li>


<li><strong>Key path:</strong> <code>HKLM\SOFTWARE\LeafIT\NerdioSequences</code></li>

</ul>



<h3 class="wp-block-heading">Task 5b: Set Registry Value</h3>



<p class="wp-block-paragraph">Next, set a value under the key to confirm the sequence completed. This makes it easy to query device status remotely via Intune or PowerShell.</p>



<ul class="wp-block-list">

<li><strong>Task name:</strong> <code>Log Completion clone</code></li>


<li><strong>Action:</strong> Set Registry Value</li>


<li><strong>Key path:</strong> <code>HKLM\SOFTWARE\LeafIT\NerdioSequences</code></li>


<li><strong>Name:</strong> <code>DeveloperOnboarding</code></li>


<li><strong>Value type:</strong> String</li>


<li><strong>Value:</strong> <code>Completed</code></li>

</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e59717&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e59717" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Setting a registry value to log sequence completion." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-06.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">Step 6: Clone Tasks for Quick Iteration</h2>



<p class="wp-block-paragraph">Need a second sequence for designers with different tools? Since NME v7.6.0, you can <strong>clone</strong> the entire sequence or individual task groups and tasks.</p>



<ol class="wp-block-list">

<li>On the <strong>Scripted Sequences</strong> page, select the <code>Developer Onboarding - Day One</code> sequence.</li>


<li>Click <strong>Clone</strong>.</li>


<li>Rename the cloned sequence and swap Git/VS Code for the tools your designers need.</li>

</ol>



<p class="wp-block-paragraph">This saves significant time compared to rebuilding sequences from scratch.</p>



<h2 class="wp-block-heading">Step 7: Target Devices and Execute</h2>



<ol class="wp-block-list">

<li>On the <strong>Scripted Sequences</strong> page, click the three dots to the right of the <code>Developer Onboarding - Day One</code> sequence.</li>


<li>Click <strong>Run now</strong>.</li>


<li>Select the target Windows 365 Cloud PC or Intune device.</li>

</ol>



<p class="wp-block-paragraph">NME will push the tasks to the Nerdio Endpoint Worker on the device. Each task runs in order. Task 2 only starts after Task 1 reports success.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e59a0f&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e59a0f" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Targeting a Windows 365 Cloud PC for sequence execution." src="https://raw.githubusercontent.com/jensdufour/blog/main/media/automating-new-device-setup-with-nerdio-scripted-sequences/automating-new-device-setup-with-nerdio-scripted-sequences-07.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Tip:</strong> Monitor progress in <strong>NME</strong> &gt; <strong>Logs</strong>.</p>
</blockquote>



<h2 class="wp-block-heading">Step 8: Validate on the Device</h2>



<p class="wp-block-paragraph">Log into the target Cloud PC and verify:</p>



<ol class="wp-block-list">

<li><strong>Git</strong> is installed. Open a terminal and run <code>git --version</code>.</li>


<li><strong>VS Code</strong> is installed. Launch it from the Start menu.</li>


<li><strong>Repos</strong> are cloned. Check <code>%USERPROFILE%\Source\Repos\main-repo</code>.</li>


<li><strong>Extensions</strong> are present. Open VS Code and navigate to the Extensions panel.</li>


<li><strong>Registry key</strong> exists. Open a terminal and run <code>reg query "HKLM\SOFTWARE\LeafIT\NerdioSequences" /v DeveloperOnboarding</code>.</li>

</ol>



<h2 class="wp-block-heading">Current Limitations</h2>



<p class="wp-block-paragraph">Scripted Sequences are still in Public Preview. Keep these constraints in mind:</p>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Limitation</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Concurrency</strong></td>
<td>Maximum 100 concurrent tasks per sequence</td>
</tr>
<tr>
<td><strong>Device scope</strong></td>
<td>Intune-managed devices only (AVD support planned for a future release)</td>
</tr>
<tr>
<td><strong>Targeting</strong></td>
<td>Manual device selection required; automated assignment to new devices is planned</td>
</tr>
<tr>
<td><strong>Initial deployment</strong></td>
<td>The Endpoint Worker relies on Intune platform script delivery, which can take time on first deploy</td>
</tr>
<tr>
<td><strong>Cross-tenant</strong></td>
<td>Running sequences against secondary tenant Windows 365 devices is not yet supported</td>
</tr>
</tbody>
</table></figure>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph"><strong>Nerdio Scripted Sequences</strong> bring deterministic, ordered task execution to Intune-managed devices. This is something native Intune cannot guarantee today. By combining simple PowerShell scripts in a defined sequence, you can automate complex onboarding workflows and ensure every new device is configured consistently.</p>



<p class="wp-block-paragraph">As the feature moves toward general availability, expect expanded scope and deeper integration within NME. For now, it is already a practical tool for any organization managing Intune endpoints at scale.</p>
<p>The post <a href="https://jensdufour.be/2026/04/01/automating-new-device-setup-with-nerdio-scripted-sequences/">Automating New Device Setup with Nerdio Scripted Sequences</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jensdufour.be/2026/04/01/automating-new-device-setup-with-nerdio-scripted-sequences/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enabling AI Frontier Capabilities on Windows 365 with Intune</title>
		<link>https://jensdufour.be/2026/03/01/enabling-ai-frontier-capabilities-on-windows-365-with-intune/</link>
					<comments>https://jensdufour.be/2026/03/01/enabling-ai-frontier-capabilities-on-windows-365-with-intune/#respond</comments>
		
		<dc:creator><![CDATA[Jens Du Four]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 23:00:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Cloud PC]]></category>
		<category><![CDATA[Copilot+]]></category>
		<category><![CDATA[Frontier Preview]]></category>
		<category><![CDATA[Intune]]></category>
		<category><![CDATA[Windows 365]]></category>
		<guid isPermaLink="false">https://jensdufour.be/?p=998</guid>

					<description><![CDATA[<p>Enable Copilot+ AI features on an AI-enabled Windows 365 Cloud PC with Intune. Covers improved Windows Search and Click to Do.</p>
<p>The post <a href="https://jensdufour.be/2026/03/01/enabling-ai-frontier-capabilities-on-windows-365-with-intune/">Enabling AI Frontier Capabilities on Windows 365 with Intune</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Copilot+ PC features like improved Windows Search and Click to Do are no longer limited to devices with a physical NPU. Through the <strong>Frontier Preview</strong>, Microsoft now lets you create an <strong>AI-enabled Windows 365 Cloud PC</strong> with 8 vCPUs. In this post we will walk through every Intune configuration step needed to enable them at scale, from dynamic group creation all the way to validation.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> The Frontier Preview is a public preview. Future availability depends on its results and is subject to change.</p>
</blockquote>



<h2 class="wp-block-heading">Prerequisites at a Glance</h2>



<p class="wp-block-paragraph">Before diving into the configuration, make sure you have the following in place:</p>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Requirement</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>SKU</strong></td>
<td>Windows 365 Enterprise, minimum <strong>8 vCPU / 32 GB RAM / 256 GB disk</strong></td>
</tr>
<tr>
<td><strong>Region</strong></td>
<td>West Europe, North Europe, UK South, East US, East US 2, Central US, West US 2, West US 3, Central India, South East Asia, or Australia East</td>
</tr>
<tr>
<td><strong>OS build</strong></td>
<td>Windows 24H2 (&gt;= 26100.6584) or 25H2 (&gt;= 26200.6584)</td>
</tr>
<tr>
<td><strong>Windows Insider</strong></td>
<td>Users must be registered with the Windows Insider Program</td>
</tr>
<tr>
<td><strong>Licensing</strong></td>
<td>A Windows 365 Enterprise license assigned to the target users</td>
</tr>
</tbody>
</table></figure>



<p class="wp-block-paragraph">With these in place, let&#8217;s start configuring.</p>



<h2 class="wp-block-heading">Step 1: Create Dynamic Entra ID Groups</h2>



<p class="wp-block-paragraph">To target the right Cloud PCs and users, we will create two dynamic groups in Entra ID. This ensures that any future 8 vCPU Cloud PCs and their users are automatically included.</p>



<h3 class="wp-block-heading">W365-U-Frontier (Dynamic user group)</h3>



<p class="wp-block-paragraph">This group automatically contains all users that have a Windows 365 Enterprise 8 vCPU license assigned.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Entra admin center</strong> &gt; <strong>Groups</strong> &gt; <strong>All groups</strong> &gt; <strong>New group</strong>.</li>


<li>Set the <strong>Group type</strong> to <strong>Security</strong>.</li>


<li>Set the <strong>Group name</strong> to <code>W365-U-Frontier</code>.</li>


<li>Set <strong>Membership type</strong> to <strong>Dynamic User</strong>.</li>


<li>Click <strong>Add dynamic query</strong> and enter the following rule:</li>

</ol>



<pre class="wp-block-code"><code>(user.assignedPlans -any (assignedPlan.servicePlanId -eq &quot;69dc175c-dcff-4757-8389-d19e76acb45d&quot; -and assignedPlan.capabilityStatus -eq &quot;Enabled&quot;))
</code></pre>



<p class="wp-block-paragraph">The service plan ID <code>69dc175c-dcff-4757-8389-d19e76acb45d</code> corresponds to the <code>CPC_E_8C_32GB_256GB</code> SKU (Windows 365 Enterprise 8 vCPU, 32 GB, 256 GB).</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5b2ef&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5b2ef" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Dynamic user group configuration with service plan ID rule" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-01.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>Click <strong>Save</strong> and then <strong>Create</strong>.</li>

</ol>



<h3 class="wp-block-heading">W365-D-Frontier (Dynamic device group)</h3>



<p class="wp-block-paragraph">This group automatically contains all Cloud PC devices that match the 8 vCPU configuration. The <code>deviceModel</code> property in Entra ID follows the format <code>Cloud PC Enterprise 8vCPU/&lt;RAM&gt;/&lt;disk&gt;</code>, so we use a <code>-startsWith</code> operator to capture all variants (128 GB, 256 GB, 512 GB).</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Entra admin center</strong> &gt; <strong>Groups</strong> &gt; <strong>All groups</strong> &gt; <strong>New group</strong>.</li>


<li>Set the <strong>Group type</strong> to <strong>Security</strong>.</li>


<li>Set the <strong>Group name</strong> to <code>W365-D-Frontier</code>.</li>


<li>Set <strong>Membership type</strong> to <strong>Dynamic Device</strong>.</li>


<li>Click <strong>Add dynamic query</strong> and enter the following rule:</li>

</ol>



<pre class="wp-block-code"><code>(device.deviceModel -startsWith &quot;Cloud PC Enterprise 8vCPU&quot;)
</code></pre>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5b58c&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5b58c" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Dynamic device group configuration with deviceModel startsWith rule" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-02.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>Click <strong>Save</strong> and then <strong>Create</strong>.</li>

</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Tip:</strong> Give the dynamic membership rules a few minutes to evaluate. You can check the membership under <strong>Groups</strong> &gt; <strong>W365-D-Frontier</strong> &gt; <strong>Members</strong> to confirm devices are populating.</p>
</blockquote>



<h2 class="wp-block-heading">Step 2: Configure the PowerShell Execution Policy</h2>



<p class="wp-block-paragraph">AI-enabled features require the <strong>RemoteSigned</strong> execution policy on the Cloud PC. Instead of configuring this manually on each device, deploy it through Intune.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Intune admin center</strong> &gt; <strong>Devices</strong> &gt; <strong>Configuration</strong> &gt; <strong>Create</strong> &gt; <strong>New Policy</strong>.</li>


<li>Select <strong>Windows 10 and later</strong> as the platform and <strong>Settings catalog</strong> as the profile type.</li>


<li>Name the policy <code>DEV-CONF-W365-FRONTIER-EXECUTIONPOLICY</code>.</li>


<li>Click <strong>Add settings</strong> and search for <code>PowerShell</code>.</li>


<li>Select <strong>Administrative Templates &gt; Windows Components &gt; Windows PowerShell</strong> and enable <strong>Turn on Script Execution</strong>.</li>


<li>Set <strong>Execution Policy</strong> to <strong>Allow only signed scripts</strong> (this is the RemoteSigned equivalent).</li>

</ol>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5b89f&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5b89f" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Execution policy configuration in the Settings Catalog" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-03.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>On the <strong>Assignments</strong> tab, assign to the <strong>W365-D-Frontier</strong> device group.</li>


<li>Click <strong>Create</strong>.</li>

</ol>



<h2 class="wp-block-heading">Step 3: Enable Features Introduced via Servicing</h2>



<p class="wp-block-paragraph">A Windows Update policy must be enabled so that features delivered through servicing updates are activated. This setting is not available in the Settings Catalog, so we deploy it as a custom configuration profile using OMA-URI.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Intune admin center</strong> &gt; <strong>Devices</strong> &gt; <strong>Configuration</strong> &gt; <strong>Create</strong> &gt; <strong>New Policy</strong>.</li>


<li>Select <strong>Windows 10 and later</strong> as the platform and <strong>Templates</strong> as the profile type, then select <strong>Custom</strong>.</li>


<li>Name the policy <code>DEV-CONF-W365-FRONTIER-SERVICING</code>.</li>


<li>Click <strong>Add</strong> under <strong>OMA-URI Settings</strong> and configure the following:</li>

</ol>



<figure class="wp-block-table"><table>
<thead>
<tr>
<th>Field</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Name</strong></td>
<td>Enable features introduced via servicing</td>
</tr>
<tr>
<td><strong>OMA-URI</strong></td>
<td><code>./Device/Vendor/MSFT/Policy/Config/Update/AllowTemporaryEnterpriseFeatureControl</code></td>
</tr>
<tr>
<td><strong>Data type</strong></td>
<td>Integer</td>
</tr>
<tr>
<td><strong>Value</strong></td>
<td><code>1</code></td>
</tr>
</tbody>
</table></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5bb2b&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5bb2b" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Custom OMA-URI policy for AllowTemporaryEnterpriseFeatureControl" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-04.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>Click <strong>Save</strong>, then <strong>Next</strong>.</li>


<li>On the <strong>Assignments</strong> tab, assign to the <strong>W365-D-Frontier</strong> device group.</li>


<li>Click <strong>Create</strong>.</li>

</ol>



<h2 class="wp-block-heading">Step 4: Enable Optional Diagnostics Data</h2>



<p class="wp-block-paragraph">The Windows Insider Program requires optional diagnostics data to be enabled on Cloud PCs. Without it, the device will display &#8220;To join the Insider program, turn on optional diagnostics data&#8221; and cannot enroll in the Beta channel. Deploy this through a Settings Catalog policy.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Intune admin center</strong> &gt; <strong>Devices</strong> &gt; <strong>Configuration</strong> &gt; <strong>Create</strong> &gt; <strong>New Policy</strong>.</li>


<li>Select <strong>Windows 10 and later</strong> as the platform and <strong>Settings catalog</strong> as the profile type.</li>


<li>Name the policy <code>DEV-CONF-W365-FRONTIER-DIAGNOSTICS</code>.</li>


<li>Click <strong>Add settings</strong> and search for <code>Allow Telemetry</code>.</li>


<li>Select <strong>System &gt; Allow Telemetry</strong> and set it to <strong>Full</strong> (this enables optional diagnostics data).</li>

</ol>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5bdf2&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5bdf2" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Optional diagnostics data configuration" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-05.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>On the <strong>Assignments</strong> tab, assign to the <strong>W365-D-Frontier</strong> device group.</li>


<li>Click <strong>Create</strong>.</li>

</ol>



<h2 class="wp-block-heading">Step 5: Enroll Cloud PCs in the Windows Insider Beta Channel</h2>



<p class="wp-block-paragraph">The AI features require the Windows Insider Beta channel. Instead of having each user manually opt in, use an Intune Update Ring to handle this at scale.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Intune admin center</strong> &gt; <strong>Devices</strong> &gt; <strong>Windows updates</strong> &gt; <strong>Update rings</strong>.</li>


<li>Click <strong>+ Create profile</strong>.</li>


<li>Name it <code>DEV-CONF-W365-FRONTIER-INSIDERBETA</code>.</li>


<li>Under <strong>Update ring settings</strong>:

<ul class="wp-block-list">

<li>Set <strong>Enable pre-release builds</strong> to <strong>Enable</strong>.</li>


<li>Set <strong>Select pre-release channel</strong> to <strong>Beta Channel</strong>.</li>

</ul>


</li>


<li>Leave the remaining settings at their defaults.</li>

</ol>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5c0e7&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5c0e7" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Windows Insider Beta channel update ring configuration" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-06.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>On the <strong>Assignments</strong> tab, assign to the <strong>W365-D-Frontier</strong> device group.</li>


<li>Click <strong>Create</strong>.</li>

</ol>



<p class="wp-block-paragraph">After the policy syncs, Cloud PCs will start receiving Beta channel updates. Make sure devices check for updates and restart.</p>



<h2 class="wp-block-heading">Step 6: Assign AI-Enablement in Intune</h2>



<p class="wp-block-paragraph">With all prerequisites deployed, you can now flip the switch to enable AI features on the targeted Cloud PCs.</p>



<ol class="wp-block-list">

<li>Navigate to <strong>Microsoft Intune admin center</strong> &gt; <strong>Devices</strong> &gt; <strong>Device onboarding</strong> &gt; <strong>Windows 365</strong>.</li>


<li>Select the <strong>Settings</strong> tab.</li>


<li>Click <strong>Create</strong> and select <strong>Cloud PC configurations</strong>.</li>


<li>Enter a <strong>Name</strong>, for example <code>USR-CONF-W365-FRONTIER-AIENABLEMENT</code>.</li>


<li>On the <strong>Configuration settings</strong> tab, set <strong>AI-enabled features</strong> to <strong>Enable</strong>.</li>

</ol>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5c3b1&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5c3b1" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="AI-enablement configuration settings" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-07.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<ol class="wp-block-list">

<li>On the <strong>Assignments</strong> tab, assign to the <strong>W365-U-Frontier</strong> user group.</li>


<li>Proceed to <strong>Review + create</strong> and click <strong>Create</strong>.</li>

</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Important:</strong> After AI-enablement is assigned, it can take <strong>up to 48 hours</strong> for the background processes to complete. During this time, the Cloud PCs are setting up the AI infrastructure locally.</p>
</blockquote>



<h2 class="wp-block-heading">Step 7: Apply Updates and Restart</h2>



<p class="wp-block-paragraph">Once the 48-hour enablement window has passed, updates need to be applied:</p>



<ol class="wp-block-list">

<li>On the Cloud PC, open <strong>Settings</strong> &gt; <strong>Windows Update</strong>.</li>


<li>Click <strong>Check for updates</strong>, install any pending updates, and <strong>restart</strong>.</li>


<li><strong>Repeat</strong> this process 3-5 times until no more updates are pending.</li>

</ol>



<p class="wp-block-paragraph">This can also be managed at scale using Intune&#8217;s <strong>Windows Update for Business</strong> policies or by using <strong>Expedite updates</strong> to push things along.</p>



<h2 class="wp-block-heading">Step 8: Validate the Deployment</h2>



<p class="wp-block-paragraph">After the updates have been applied, you can verify that AI features are active in several places.</p>



<h3 class="wp-block-heading">Intune Admin Validation</h3>



<p class="wp-block-paragraph"><strong>Device Overview page:</strong>
Navigate to <strong>Devices</strong> &gt; select a Cloud PC &gt; <strong>Overview</strong>. The <strong>Essentials</strong> tab will show an <strong>AI-enabled</strong> field.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5c77b&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5c77b" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="AI-enablement Cloud PC" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-08.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph"><strong>Reports dashboard:</strong>
Navigate to <strong>Reports</strong> &gt; <strong>Windows 365</strong> &gt; <strong>Cloud PC overview</strong>. You will see a breakdown of AI-enabled Cloud PCs by status:</p>



<ul class="wp-block-list">

<li><strong>Initiated</strong> &#8211; AI enablement is in progress</li>


<li><strong>Ready to use</strong> &#8211; Features are available</li>


<li><strong>Failed</strong> &#8211; Setup could not complete</li>

</ul>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5c9c7&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5c9c7" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="AI-enablement Cloud PC overview" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-09.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h3 class="wp-block-heading">End-User Validation</h3>



<p class="wp-block-paragraph"><strong>Windows App:</strong>
AI-enabled Cloud PCs show an <strong>&#8220;AI-enabled&#8221;</strong> tag on the device card within the Windows App.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5cba7&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5cba7" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="Windows app AI-enabled tag" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/enabling-ai-frontier-capabilities-on-windows-365-with-intune/enabling-ai-frontier-capabilities-on-windows-365-with-intune-10.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph"><strong>Windows Taskbar:</strong>
The search box on the taskbar displays a <strong>magnifying glass with sparkles</strong> icon when AI features are active.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> After a Windows Update, the sparkles icon might temporarily disappear. If clicking the search box doesn&#8217;t restore it, check the <a href="https://learn.microsoft.com/en-us/troubleshoot/windows-365/windows-365-ai-enabled-cloud-pc-known-issues">AI-enabled Cloud PC Known Issues</a> page.</p>
</blockquote>



<h2 class="wp-block-heading">What You Get: Supported Features</h2>



<p class="wp-block-paragraph">Once everything is set up, your Cloud PCs get access to the following Copilot+ features:</p>



<h3 class="wp-block-heading">Improved Windows Search</h3>



<p class="wp-block-paragraph">Users can find files using <strong>descriptive, natural-language queries</strong>. The AI interprets intent and searches across local files and OneDrive. For example, searching &#8220;airplane&#8221; will surface a photo named <code>Picture26.jpg</code> that contains an airplane.</p>



<p class="wp-block-paragraph">This works in both the <strong>Windows Search box</strong> on the taskbar and in <strong>File Explorer</strong>. It supports English, Chinese (Simplified), French, German, Japanese, and Spanish.</p>



<h3 class="wp-block-heading">Click to Do</h3>



<p class="wp-block-paragraph">Press <strong>Win + Q</strong> or hold the <strong>Windows key</strong> while left-clicking an element on screen to get contextual actions on highlighted text or images. You can summarize text, look up information, or perform actions on images without switching apps.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Note:</strong> You must launch the Click to Do app once after AI-enablement and after every Cloud PC restart before the keyboard shortcuts work. Some intelligent text actions (like &#8220;Ask Microsoft 365 Copilot&#8221;) are not yet supported on Cloud PCs.</p>
</blockquote>



<h2 class="wp-block-heading">Managing and Removing AI Features</h2>



<h3 class="wp-block-heading">Granular Feature Control</h3>



<p class="wp-block-paragraph">If you want to keep AI-enablement but toggle individual features:</p>



<ul class="wp-block-list">

<li><strong>Click to Do</strong>: Manage through <a href="https://learn.microsoft.com/en-us/windows/client-management/manage-click-to-do">Click to Do client management policies</a>.</li>


<li><strong>Improved Windows Search</strong>: Use the <a href="https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-search">Search Policy CSP</a> settings in Intune.</li>

</ul>



<h3 class="wp-block-heading">Disabling AI-Enablement Entirely</h3>



<p class="wp-block-paragraph">There are two options:</p>



<ol class="wp-block-list">

<li><strong>Unassign</strong> the user from the Enable policy.</li>


<li><strong>Create a Disable policy</strong>: Follow the same steps as Step 6, but set <strong>AI-enabled features</strong> to <strong>Disable</strong> and assign to the target group. The Disable policy takes precedence over Enable during conflict resolution.</li>

</ol>



<p class="wp-block-paragraph">After disabling, it can take up to 48 hours for the AI features to be removed from the Cloud PCs.</p>



<h2 class="wp-block-heading">Privacy and Security</h2>



<p class="wp-block-paragraph">AI-enabled Cloud PCs follow the same <a href="https://learn.microsoft.com/en-us/windows-365/enterprise/privacy-personal-data">Windows 365 privacy and data policies</a>:</p>



<ul class="wp-block-list">

<li><strong>Processing</strong>: AI features process data <strong>ephemerally</strong> using a secure Windows 365 cloud service. No personal or user data is stored in the cloud service or used for AI model training.</li>


<li><strong>Storage</strong>: All data and indexes are stored <strong>locally on the Cloud PC</strong>. This is unchanged from existing Windows AI features.</li>


<li><strong>Controls</strong>: AI features are <strong>off by default</strong>. The IT admin must explicitly enable them through the configuration steps described above.</li>

</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">With a few Intune policies and a couple of dynamic Entra ID groups, you can bring Copilot+ AI features to your Windows 365 8 vCPU fleet without touching a single Cloud PC. The key steps are:</p>



<ol class="wp-block-list">

<li>Create dynamic groups to target the right users and devices.</li>


<li>Deploy execution policy and servicing feature policies.</li>


<li>Enable optional diagnostics data for Windows Insider enrollment.</li>


<li>Enroll devices in the Windows Insider Beta channel.</li>


<li>Enable AI features through a Cloud PC configuration.</li>


<li>Apply updates and validate.</li>

</ol>



<p class="wp-block-paragraph">For troubleshooting, check the <a href="https://learn.microsoft.com/en-us/troubleshoot/windows-365/windows-365-ai-enabled-cloud-pc-known-issues">AI-enabled Cloud PC Known Issues</a> page. For the full Microsoft documentation, see <a href="https://learn.microsoft.com/en-us/windows-365/enterprise/ai-enabled-cloud-pcs">AI-enabled Cloud PC (Frontier Preview)</a> and <a href="https://learn.microsoft.com/en-us/windows-365/enterprise/manage-ai-enabled-features">Manage AI-enabled features</a>.</p>



<p class="wp-block-paragraph">Looking for more Windows 365 management tips? Check out <a href="https://jensdufour.be/2025/08/18/windows-365-restore-points-a-guide-to-long-term-storage/">Windows 365 Restore Points: A Guide to Long-Term Storage</a> and <a href="https://jensdufour.be/2023/04/01/adding-languages-using-proactive-remediations/">Adding Language Packs Using Proactive Remediations</a>.</p>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">

<li><a href="https://learn.microsoft.com/en-us/windows-365/enterprise/ai-enabled-cloud-pcs">AI-enabled Cloud PC (Frontier Preview)</a></li>


<li><a href="https://learn.microsoft.com/en-us/windows-365/enterprise/manage-ai-enabled-features">Manage AI-enabled features on Cloud PCs</a></li>


<li><a href="https://learn.microsoft.com/en-us/troubleshoot/windows-365/windows-365-ai-enabled-cloud-pc-known-issues">AI-enabled Cloud PC Known Issues</a></li>


<li><a href="https://learn.microsoft.com/en-us/entra/identity/users/licensing-service-plan-reference">Product names and service plan identifiers for licensing</a></li>

</ul>
<p>The post <a href="https://jensdufour.be/2026/03/01/enabling-ai-frontier-capabilities-on-windows-365-with-intune/">Enabling AI Frontier Capabilities on Windows 365 with Intune</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jensdufour.be/2026/03/01/enabling-ai-frontier-capabilities-on-windows-365-with-intune/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows 365 Restore Points: A Guide to Long-Term Storage</title>
		<link>https://jensdufour.be/2025/12/01/windows-365-restore-points-a-guide-to-long-term-storage/</link>
					<comments>https://jensdufour.be/2025/12/01/windows-365-restore-points-a-guide-to-long-term-storage/#respond</comments>
		
		<dc:creator><![CDATA[Jens Du Four]]></dc:creator>
		<pubDate>Sun, 30 Nov 2025 23:00:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Cloud PC]]></category>
		<category><![CDATA[Intune]]></category>
		<category><![CDATA[Windows 365]]></category>
		<guid isPermaLink="false">http://192.168.0.43/?p=619</guid>

					<description><![CDATA[<p>Configure Windows 365 restore points and store them long-term with Azure Storage Accounts. A complete guide for Cloud PC backup management.</p>
<p>The post <a href="https://jensdufour.be/2025/12/01/windows-365-restore-points-a-guide-to-long-term-storage/">Windows 365 Restore Points: A Guide to Long-Term Storage</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://learn.microsoft.com/en-us/windows-365/overview">Windows 365</a> is a service that provides a Windows Cloud experience, allowing users to access a Windows desktop from anywhere. One of the key features of Windows 365 is the ability to create restore points, which are snapshots of the system at a specific point in time. Let’s take a look at what those mean!</p>



<h2 class="wp-block-heading">Overview of Windows 365 Restore Points</h2>



<p class="wp-block-paragraph">Using restore points in Windows 365 offers several advantages. Firstly, they provide a safety net for system recovery, ensuring that users can quickly restore their system to a working state in case of any issues.</p>



<p class="wp-block-paragraph">Secondly, restore points help protect data by preserving user settings and installed applications. This means that even if a system crash occurs, users can recover their data without losing important information.</p>



<p class="wp-block-paragraph">Additionally, restore points can be used to test new software or updates, allowing users to revert to a previous state if the changes cause problems.</p>



<h2 class="wp-block-heading">How to adapt the automatic Windows 365 Restore Points in Microsoft Intune</h2>



<p class="wp-block-paragraph">By default <a href="https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/what-is-intune">Microsoft Intune</a> will create several restore points for each and every Cloud PC.</p>



<p class="wp-block-paragraph">The amount of restore points will never change and is two bi-weekly restore points and ten restore points you can adapt the recurrence of, this is done through a “User Setting”:</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5e7d1&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5e7d1" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-01.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">Once you are here, you can adapt the recurrence.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5e94a&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5e94a" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-02.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<h2 class="wp-block-heading">What about Storage Accounts?</h2>



<p class="wp-block-paragraph">Storage accounts play a crucial role in managing restore points for Windows 365. These provide a secure solution for storing large amounts of data, including your restore points.</p>



<p class="wp-block-paragraph">By utilizing storage accounts, users can ensure that their restore points are safely stored and easily accessible when needed. One of the key benefits of using storage accounts is the ability to manage data efficiently, with options for redundancy and backup to protect against data loss.</p>



<p class="wp-block-paragraph">Additionally, storage accounts offer flexibility, allowing users to configure permissions and access controls to suit their needs. To use storage accounts for restore points, users can integrate their Windows 365 environment with Azure, setting up containers and blobs to store the restore points securely.</p>



<p class="wp-block-paragraph">This integration ensures that restore points are preserved long-term and can be retrieved quickly in case of system recovery needs.</p>



<h3 class="wp-block-heading">Creating the right Azure Storage Account</h3>



<p class="wp-block-paragraph">There a few requirements to be met when creating a Storage Account for the Restore Points of the Cloud PC. They are listed below and we will go over the steps needed in Azure after these.</p>



<ul class="wp-block-list">

<li><strong>Instance details</strong>

<ul class="wp-block-list">

<li><strong>Region</strong>: Same region as Cloud PC is recommended because of performance. There is no restriction on which region you should choose.</li>


<li><strong>Performance</strong>: <strong>Premium</strong> (supports hot access tier) or <strong>Standard</strong> (supports all <a href="https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-overview">access tiers</a>).</li>


<li><strong>Premium account type</strong>: <strong>Page blobs</strong></li>

</ul>


</li>


<li><strong>Security</strong>

<ul class="wp-block-list">

<li>Minimum TLS version: <strong>Version 1.2</strong>.</li>


<li>Confirm <strong>Allow blob anonymous access</strong> is disabled (the default).</li>


<li>Disable <strong>Enable storage account key access</strong>.</li>

</ul>


</li>


<li><strong>Networking</strong>

<ul class="wp-block-list">

<li><strong>Network access</strong>: <strong>Enable public access from all networks</strong></li>

</ul>


</li>

</ul>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6a357e8e5ecb8&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5ed19&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5ed19" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-03.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5ee3a&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5ee3a" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-04.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5ef5b&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5ef5b" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-05.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f074&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f074" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-06.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f18b&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f18b" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-07.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f2a6&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f2a6" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-08.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f3be&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f3be" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-09.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f4d7&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f4d7" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-10.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>


<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f5ec&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f5ec" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-11.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>

</figure>



<h2 class="wp-block-heading">Creating a manual Restore Point in Microsoft Intune</h2>



<p class="wp-block-paragraph">Once the Storage Account has been set up, you have the option to create a manual restore point in Microsoft Intune.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a357e8e5f959&quot;}" data-wp-interactive="core/image" data-wp-key="6a357e8e5f959" class="wp-block-image wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" alt="" src="https://raw.githubusercontent.com/jensdufour/blog/main/media/windows-365-restore-points-a-guide-to-long-term-storage/windows-365-restore-points-a-guide-to-long-term-storage-12.webp"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<p class="wp-block-paragraph">If this option is not visible, verify the requirements above as the Storage Account will not be visible if it does not meet these.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">In summary, Windows 365 restore points are an essential feature. They provide a reliable way to recover from system issues, preserve user settings, and test new software or updates.</p>



<p class="wp-block-paragraph">By creating and managing restore points effectively, users can safeguard their systems and minimize downtime.</p>



<p class="wp-block-paragraph">Additionally, utilizing <a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview">Azure Storage Accounts</a> for long-term storage of restore points offers a scalable and secure solution for preserving these critical backups. I encourage everyone to take advantage of them in Windows 365 to enhance system management and data protection strategies.</p>



<p class="wp-block-paragraph">If you want to further enhance your Windows 365 environment, check out <a href="https://jensdufour.be/2026/03/11/enabling-ai-frontier-capabilities-on-windows-365-with-intune/">Enabling AI Frontier Capabilities on Windows 365 with Intune</a> or learn how to automate language packs in <a href="https://jensdufour.be/2023/04/01/adding-languages-using-proactive-remediations/">Adding Language Packs Using Proactive Remediations</a>.</p>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">

<li><a href="https://learn.microsoft.com/en-us/windows-365/">Windows 365 documentation | Microsoft Learn</a></li>


<li><a href="https://learn.microsoft.com/en-us/windows-365/enterprise/restore-overview">Cloud PC restore points | Microsoft Learn</a></li>


<li><a href="https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview">Azure Storage Accounts | Microsoft Learn</a></li>


<li><a href="https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-overview">Access tiers for blob data | Microsoft Learn</a></li>

</ul>
<p>The post <a href="https://jensdufour.be/2025/12/01/windows-365-restore-points-a-guide-to-long-term-storage/">Windows 365 Restore Points: A Guide to Long-Term Storage</a> appeared first on <a href="https://jensdufour.be">Jens Du Four</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jensdufour.be/2025/12/01/windows-365-restore-points-a-guide-to-long-term-storage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Minified using Disk

Served from: jensdufour.be @ 2026-06-19 18:38:22 by W3 Total Cache
-->