<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: KojiYamada3095</title>
    <description>The latest articles on DEV Community by KojiYamada3095 (@kojiyamada3095).</description>
    <link>https://dev.to/kojiyamada3095</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4123786%2F4e95dbfa-e08f-4406-a4ea-10057d045c95.png</url>
      <title>DEV Community: KojiYamada3095</title>
      <link>https://dev.to/kojiyamada3095</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kojiyamada3095"/>
    <language>en</language>
    <item>
      <title>Device Preparation Policy for Windows 365 CloudPC in Intune</title>
      <dc:creator>KojiYamada3095</dc:creator>
      <pubDate>Mon, 14 Sep 2026 04:38:12 +0000</pubDate>
      <link>https://dev.to/kojiyamada3095/device-preparation-policy-for-windows-365-cloudpc-in-intune-34kd</link>
      <guid>https://dev.to/kojiyamada3095/device-preparation-policy-for-windows-365-cloudpc-in-intune-34kd</guid>
      <description>

&lt;p&gt;&lt;strong&gt;What you'll learn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What the &lt;strong&gt;Automatic mode&lt;/strong&gt; of a device preparation policy solves for Windows 365 (the benefits)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The supported Windows 365 SKUs and the prerequisites&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The end-to-end flow: create the Entra group → assign apps/scripts → create the device preparation policy → create the provisioning policy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to monitor provisioning, and the pitfalls that trip people up&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Written as of&lt;/strong&gt;: September 2026 &lt;strong&gt;Assumptions&lt;/strong&gt;: A tenant with Windows 365 Enterprise / Flex (formerly Frontline) licenses and Microsoft Intune&lt;/p&gt;

&lt;h2&gt;
  
  
  What a device preparation policy in Automatic mode is
&lt;/h2&gt;

&lt;p&gt;It's a form of Windows Autopilot device preparation (commonly known as Autopilot v2), and it's a &lt;strong&gt;dedicated policy that you link to a Windows 365 provisioning policy&lt;/strong&gt;. By including the device preparation policy in the provisioning policy, you guarantee that &lt;strong&gt;the essential Intune apps and scripts are installed on the Cloud PC before the user signs in&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The SKUs you can provision in automatic mode are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Windows 365 Flex in shared mode&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows 365 Enterprise&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows 365 Flex in dedicated mode&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Windows 365 Cloud Apps&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Cloud PC is "ready for productive use" the moment the user first signs in
&lt;/h3&gt;

&lt;p&gt;Traditionally, a Cloud PC is marked &lt;strong&gt;Provisioned&lt;/strong&gt; as soon as Intune enrollment finishes, and users can connect from that point. App delivery runs afterward, so right after the first sign-in the Cloud PC often has neither Teams nor the line-of-business apps installed yet.&lt;/p&gt;

&lt;p&gt;With a device preparation policy, &lt;strong&gt;Windows 365 waits to complete provisioning until the specified apps and scripts have finished installing&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. You're freed from building and maintaining custom images
&lt;/h3&gt;

&lt;p&gt;Building your own "custom image with the required apps preinstalled" and keeping it updated piles up cost: image versioning, applying updates, and re-validating. A device preparation policy keeps the standard configuration of &lt;strong&gt;a gallery image plus Intune app delivery&lt;/strong&gt;, while &lt;strong&gt;reducing the management overhead that comes with custom images&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You can choose not to hand a failed Cloud PC to the user
&lt;/h3&gt;

&lt;p&gt;If you enable &lt;strong&gt;Prevent users from connection to Cloud PC upon installation failure or timeout&lt;/strong&gt; in the provisioning policy, a Cloud PC that fails preparation is marked &lt;strong&gt;Failed&lt;/strong&gt; and users can't connect to it. If you leave it unselected, the Cloud PC is marked &lt;strong&gt;Provisioned with warnings&lt;/strong&gt; and users can connect. The key point is that &lt;strong&gt;you get to decide, as an operational policy, whether to hand out a half-configured device or block it&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Near real-time visibility at the individual app and script level
&lt;/h3&gt;

&lt;p&gt;In automatic mode, Cloud PC setup happens in the background, so you can't "watch" it on screen. Instead, the &lt;strong&gt;Windows Autopilot device preparation deployments report&lt;/strong&gt; lets you track the deployment status, phase, and deployment time per device, and even &lt;strong&gt;the status of each individual app and script (Installed / In progress / Skipped / Failed)&lt;/strong&gt;. Isolating "why is this one device missing its apps?" gets dramatically faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Enrollment Time Grouping makes delivery fast and reliable
&lt;/h3&gt;

&lt;p&gt;The device is added to a predefined device security group at the moment of enrollment, and the configuration is delivered immediately. Compared with the traditional approach of waiting for dynamic group membership to be evaluated, &lt;strong&gt;apps, scripts, and policies are delivered more quickly and efficiently&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Assignment management is simpler
&lt;/h3&gt;

&lt;p&gt;A device preparation policy in automatic mode &lt;strong&gt;has no Assignments page&lt;/strong&gt;. Assignment is handled when you create the Cloud PC provisioning policy, so there's no double management of "which group do I target this policy at?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall workflow
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Where&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Azure portal (Entra ID)&lt;/td&gt;
&lt;td&gt;Set up Windows automatic Intune enrollment (MDM user scope)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Intune admin center (Groups)&lt;/td&gt;
&lt;td&gt;Create an &lt;strong&gt;assigned&lt;/strong&gt; security device group and set Intune Provisioning Client as the owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Intune admin center (Apps / Scripts)&lt;/td&gt;
&lt;td&gt;Assign the apps and PowerShell scripts you want to deliver to the device group from step 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Intune admin center (Enrollment)&lt;/td&gt;
&lt;td&gt;Create the device preparation policy with &lt;strong&gt;Automatic&lt;/strong&gt; and specify the apps/scripts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Intune admin center (Windows 365)&lt;/td&gt;
&lt;td&gt;Select the policy from step 4 in the Cloud PC provisioning policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Intune admin center (Monitor)&lt;/td&gt;
&lt;td&gt;Monitor the deployment status&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  [Step 1] Set up Windows automatic Intune enrollment
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;If automatic Intune enrollment is already set up, skip this step and move on to step 2.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sign in to the &lt;strong&gt;Azure portal&lt;/strong&gt; and select &lt;strong&gt;Microsoft Entra ID&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Manage&lt;/strong&gt; in the left hand pane, select &lt;strong&gt;Mobility (MDM and WIP)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Name&lt;/strong&gt;, select &lt;strong&gt;Microsoft Intune&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;MDM user scope&lt;/strong&gt;, select either &lt;strong&gt;All&lt;/strong&gt; or &lt;strong&gt;Some&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*   If you select **Some**, specify the target Entra **user** groups from the link under **Groups**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; Select &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  [Step 2] Create an assigned device group
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dynamic groups can't be used.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sign in to the &lt;strong&gt;Microsoft Intune admin center&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the left hand pane, select &lt;strong&gt;Groups&lt;/strong&gt; → &lt;strong&gt;All groups&lt;/strong&gt; → &lt;strong&gt;New group&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure it as follows&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Group type&lt;/td&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Group name&lt;/td&gt;
&lt;td&gt;e.g. &lt;code&gt;Windows Autopilot device preparation device group&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Group description&lt;/td&gt;
&lt;td&gt;Optional&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Entra roles can be assigned to the group&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Membership type&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Assigned&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Owners&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Intune Provisioning Client&lt;/strong&gt; (AppId: &lt;code&gt;f1346770-5b25-470b-88bd-d5744ab7952c&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Members&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; Select &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3pameh6etpjsld280z0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3pameh6etpjsld280z0z.png" alt=" " width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The group specified in the device preparation policy needs to be an &lt;strong&gt;assigned security device group&lt;/strong&gt;. Dynamic groups aren't used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In some tenants, the service principal is displayed as &lt;strong&gt;Intune Autopilot ConfidentialClient&lt;/strong&gt;. &lt;strong&gt;As long as the AppId is&lt;/strong&gt; &lt;code&gt;f1346770-5b25-470b-88bd-d5744ab7952c&lt;/code&gt;&lt;strong&gt;, it's the correct&lt;/strong&gt; service principal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud PCs are automatically added to this group during the deployment. Adding them manually isn't necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microsoft recommends &lt;strong&gt;using separate device groups&lt;/strong&gt; for user-driven scenarios and automatic scenarios. :::&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  If you can't find Intune Provisioning Client
&lt;/h3&gt;

&lt;p&gt;If it appears neither in the list nor in search results, add it with PowerShell.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft.Graph.Authentication&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Install-Module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Microsoft.Graph.Applications&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Connect-MgGraph&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scopes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Application.ReadWrite.All"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-MgServicePrincipal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-AppID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;f1346770-5b25-470b-88bd-d5744ab7952c&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  [Step 3] Assign applications and PowerShell scripts to the device group
&lt;/h2&gt;

&lt;p&gt;During OOBE (that is, while no user is signed in), you can deploy up to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;25 managed applications&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;10 PowerShell scripts&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The official tutorial's "Step 3" and the overview page state &lt;strong&gt;25 apps / 10 scripts&lt;/strong&gt;, while the "Step 4 (create the policy)" page states &lt;strong&gt;up to 10 apps&lt;/strong&gt;, so the numbers differ between articles. Check the admin center UI for the actual limit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Supported application types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Line-of-business (LOB)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Win32&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microsoft Store (&lt;strong&gt;only apps that support WinGet&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microsoft 365&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enterprise App Catalog&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Assigning applications
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Intune admin center → &lt;strong&gt;Apps&lt;/strong&gt; → &lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the target app → &lt;strong&gt;Properties&lt;/strong&gt; → &lt;strong&gt;Edit&lt;/strong&gt; next to &lt;strong&gt;Assignments&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the &lt;strong&gt;Required&lt;/strong&gt; section, select &lt;strong&gt;Add group&lt;/strong&gt; → select the device group from step 2&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify that &lt;strong&gt;Group mode is set to Included&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When applicable, verify that &lt;strong&gt;Install Context is set to Device context&lt;/strong&gt; (so the app installs in the System context)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Review + save&lt;/strong&gt; → &lt;strong&gt;Save&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Assigning PowerShell scripts
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Intune admin center → &lt;strong&gt;Devices&lt;/strong&gt; → &lt;strong&gt;Scripts and remediations&lt;/strong&gt; → &lt;strong&gt;Platform scripts&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the target script → &lt;strong&gt;Properties&lt;/strong&gt; → &lt;strong&gt;Edit&lt;/strong&gt; next to &lt;strong&gt;Assignments&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the device group from step 2 under &lt;strong&gt;Included groups&lt;/strong&gt; (also make sure it isn't listed under &lt;strong&gt;Excluded groups&lt;/strong&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Review + save&lt;/strong&gt; → &lt;strong&gt;Save&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Because no user is signed in during OOBE, applications must be configured to install in the &lt;strong&gt;System context&lt;/strong&gt;. A PowerShell script runs in the System context when you set &lt;strong&gt;Run this script using the logged on credentials&lt;/strong&gt; to &lt;strong&gt;No&lt;/strong&gt; in its properties.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  [Step 4] Create the device preparation policy in Automatic mode
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Intune admin center → &lt;strong&gt;Devices&lt;/strong&gt; → under &lt;strong&gt;By platform&lt;/strong&gt;, select &lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Device onboarding&lt;/strong&gt;, select &lt;strong&gt;Enrollment&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Windows Autopilot device preparation&lt;/strong&gt;, select &lt;strong&gt;Device preparation policies&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Create&lt;/strong&gt; → &lt;strong&gt;Automatic&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt; page: select &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Basics&lt;/strong&gt; page: enter a name and description → &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Device group&lt;/strong&gt; page: search for and select the device group created in step 2 → &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuration settings&lt;/strong&gt; page:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apps&lt;/strong&gt; section → &lt;strong&gt;Add&lt;/strong&gt; → select the essential apps → &lt;strong&gt;Save&lt;/strong&gt; (they appear under &lt;strong&gt;Allowed applications&lt;/strong&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scripts&lt;/strong&gt; section → &lt;strong&gt;Add&lt;/strong&gt; → select the essential scripts → &lt;strong&gt;Save&lt;/strong&gt; (they appear under &lt;strong&gt;Allowed scripts&lt;/strong&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xk66nwll0cy1y8ctpfq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6xk66nwll0cy1y8ctpfq.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope tags&lt;/strong&gt; page: specify if needed (optional) → &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Review + create&lt;/strong&gt; page: review the settings and select &lt;strong&gt;Save&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unlike user-driven mode, a policy in automatic mode &lt;strong&gt;has no deployment settings or OOBE settings sections, and no Assignments page&lt;/strong&gt;. Assignment is handled in step 5 (the provisioning policy).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also, the apps and scripts you select here must already be assigned to the device security group from step 2.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  [Step 5] Create the Cloud PC provisioning policy
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Intune admin center → &lt;strong&gt;Devices&lt;/strong&gt; → &lt;strong&gt;Cloud PC provisioning&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Provisioning policies&lt;/strong&gt; → &lt;strong&gt;Create policy&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General&lt;/strong&gt; page&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*   Enter a name and description

*   **Experience**: Access a full Cloud PC desktop

*   **License type**: select the SKU you're using

*   **Join type**: Microsoft Entra Join or Hybrid Microsoft Entra Join

*   **Network**: Microsoft hosted network or Azure network connection

*   Select **Geography** / **Region**, and enable **Use Microsoft Entra single sign-on** if needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Image&lt;/strong&gt; page: select the image you want&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt; page&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*   Select **Language &amp;amp; Region**

*   Configure **Apply device name template** if needed

*   Under **Windows Autopilot**:

    *   For **Autopilot device preparation policy**, select the policy from step 4

    *   For **Minutes allowed before device preparation fails**, enter a value between **30 and 360 minutes** (**minimum 30 minutes**, e.g. 60)

    *   Select **Prevent users from connection to Cloud PC upon installation failure or timeout** if needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scope tags&lt;/strong&gt; page: optional&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Assignments&lt;/strong&gt; page&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*   Select **Add groups** and choose the target user group
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review + create&lt;/strong&gt; → &lt;strong&gt;Create&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intune admin center → &lt;strong&gt;Devices&lt;/strong&gt; → &lt;strong&gt;All Cloud PCs&lt;/strong&gt;, and wait for the Cloud PC to be provisioned.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the Cloud PC is provisioned, connect to it and verify that the apps and scripts configured in the Autopilot device preparation policy are installed.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Monitor the deployment
&lt;/h2&gt;

&lt;p&gt;Monitoring is done in the admin center.&lt;/p&gt;

&lt;h3&gt;
  
  
  Status per Cloud PC
&lt;/h3&gt;

&lt;p&gt;Check the &lt;strong&gt;Status&lt;/strong&gt; column under &lt;strong&gt;Devices&lt;/strong&gt; → &lt;strong&gt;All Cloud PCs&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Provisioning&lt;/td&gt;
&lt;td&gt;The Cloud PC is being created and isn't ready for use yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Preparing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Device preparation configuration is underway; not ready for use yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provisioned&lt;/td&gt;
&lt;td&gt;Completed successfully and ready to use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failed&lt;/td&gt;
&lt;td&gt;The connection-blocking option is enabled and preparation failed, so it can't be used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provisioned with warnings&lt;/td&gt;
&lt;td&gt;Provisioning succeeded but some configuration failed; the Cloud PC can still be used&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Per-app and per-script details
&lt;/h3&gt;

&lt;p&gt;Open &lt;strong&gt;Devices&lt;/strong&gt; → &lt;strong&gt;Monitor&lt;/strong&gt; → &lt;strong&gt;Windows Autopilot device preparation deployments&lt;/strong&gt; in the list of reports.&lt;/p&gt;

&lt;p&gt;Information shown: Device name / Enrollment date / Deployment status (In progress, Success, Failed) / &lt;strong&gt;Phase&lt;/strong&gt; (Policy installation, Script installation, App installation) / Serial number / Deployment time / UPN&lt;br&gt;&lt;br&gt;
Below is an example of a failed deployment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4kiqd1cg5l80v710ukvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4kiqd1cg5l80v710ukvv.png" alt=" " width="800" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecting a device name opens &lt;strong&gt;Device deployment details&lt;/strong&gt;, which lists the apps and scripts with their individual statuses, in addition to device information (Intune device ID, Entra device ID, &lt;strong&gt;deployment policy and policy version&lt;/strong&gt;, OS version).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fezuvo9edbpui84dymv69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fezuvo9edbpui84dymv69.png" alt=" " width="566" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Installed&lt;/td&gt;
&lt;td&gt;Installed / ran successfully&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In progress&lt;/td&gt;
&lt;td&gt;Currently running&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Skipped&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Selected in the policy, but &lt;strong&gt;not assigned to the device group specified in the policy&lt;/strong&gt; (or not applicable to the device)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failed&lt;/td&gt;
&lt;td&gt;Installation / execution failed. Check the logs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Checklist recap
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The device group is dynamic&lt;/strong&gt; → it won't work unless it's an Assigned security group.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Intune Provisioning Client isn't set as the group owner, or was removed later&lt;/strong&gt; → security group membership updates can fail and the device can fall out of compliance. Changing the group from static to dynamic after configuring the policy, or deleting the group, are also causes of failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The apps/scripts aren't assigned to the device group&lt;/strong&gt; → they're reported as &lt;strong&gt;Skipped&lt;/strong&gt;. Selecting them in the policy alone doesn't deliver them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The script is still running in the user context&lt;/strong&gt; → set &lt;strong&gt;Run this script using the logged on credentials&lt;/strong&gt; to &lt;strong&gt;No&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reference links (official Microsoft documentation)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview and requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/overview" rel="noopener noreferrer"&gt;Overview of Windows Autopilot device preparation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/requirements" rel="noopener noreferrer"&gt;Windows Autopilot device preparation requirements&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/windows-365/enterprise/autopilot-device-preparation" rel="noopener noreferrer"&gt;Use Autopilot device preparation with Cloud PCs (Windows 365)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/known-issues" rel="noopener noreferrer"&gt;Windows Autopilot device preparation - known issues&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Procedure (the 6-step tutorial for Windows 365 automatic mode)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-workflow" rel="noopener noreferrer"&gt;Overview: Windows Autopilot device preparation in automatic mode for Windows 365&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-automatic-enrollment" rel="noopener noreferrer"&gt;Step 1: Set up Windows automatic Intune enrollment&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-device-group" rel="noopener noreferrer"&gt;Step 2: Create an assigned device group&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-assign-apps-scripts" rel="noopener noreferrer"&gt;Step 3: Assign applications and PowerShell scripts to device group&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-autopilot-policy" rel="noopener noreferrer"&gt;Step 4: Create Windows Autopilot device preparation policy&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-cloud-pc-provisioning-policy" rel="noopener noreferrer"&gt;Step 5: Create a Cloud PC provisioning policy&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/autopilot/device-preparation/tutorial/automatic/automatic-monitor" rel="noopener noreferrer"&gt;Step 6: Monitor the deployment&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>windows365</category>
      <category>intune</category>
      <category>autopilot</category>
      <category>mdm</category>
    </item>
    <item>
      <title>Endpoint management and virtual desktop admins who are considering Azure NetApp Files (ANF) as the profile storage location for AVD</title>
      <dc:creator>KojiYamada3095</dc:creator>
      <pubDate>Mon, 14 Sep 2026 04:25:09 +0000</pubDate>
      <link>https://dev.to/kojiyamada3095/endpoint-management-and-virtual-desktop-admins-who-are-considering-azure-netapp-files-anf-as-the-1j0o</link>
      <guid>https://dev.to/kojiyamada3095/endpoint-management-and-virtual-desktop-admins-who-are-considering-azure-netapp-files-anf-as-the-1j0o</guid>
      <description>&lt;h2&gt;
  
  
  About this article
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What you'll learn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  How to use ANF as the storage location for FSLogix profile containers&lt;/li&gt;
&lt;li&gt;  The FSLogix registry settings&lt;/li&gt;
&lt;li&gt;  How to verify that it works&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test environment&lt;/strong&gt;: Azure Virtual Desktop / Azure NetApp Files (as of September 2026)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;: An Active Directory Domain Services (AD DS) environment&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FSLogix stores a user profile in a &lt;strong&gt;VHD(X)-based container&lt;/strong&gt; and attaches it to the session host at sign-in. You use it to persist user settings and data in non-persistent VDI and multi-session environments.&lt;/p&gt;

&lt;p&gt;FSLogix containers are placed on an &lt;strong&gt;SMB file share&lt;/strong&gt;. There are various options, such as a shared file server in an on-premises environment, but this article covers storing them on Azure NetApp Files (ANF). As a managed SMB file server, Azure NetApp Files delivers &lt;strong&gt;low latency and high throughput&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Container types
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Profile Container&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stores the complete user profile in a VHD(X). &lt;strong&gt;This is what this article uses&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ODFC Container&lt;/td&gt;
&lt;td&gt;Separates only Office-related data into a different container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud Cache&lt;/td&gt;
&lt;td&gt;Not a type, but an optional configuration for the containers above&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Overall workflow
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Where&lt;/th&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Azure portal&lt;/td&gt;
&lt;td&gt;Create a NetApp account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Azure portal&lt;/td&gt;
&lt;td&gt;Create a capacity pool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Azure portal&lt;/td&gt;
&lt;td&gt;Configure an Active Directory connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Azure portal&lt;/td&gt;
&lt;td&gt;Create an SMB volume&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Session host&lt;/td&gt;
&lt;td&gt;Configure the registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Session host&lt;/td&gt;
&lt;td&gt;Verify that it works&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Other prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;An Azure account with contributor or administrator permissions&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A subnet delegated to Azure NetApp Files&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ANF can be accessed only from &lt;strong&gt;the same VNet, or a peered VNet in the same region&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Only one subnet per VNet can be delegated to ANF&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;One AD connection per NetApp account&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  [Step 1] Create a NetApp account
&lt;/h1&gt;

&lt;p&gt;Select &lt;strong&gt;Create a resource&lt;/strong&gt; → search for &lt;strong&gt;Azure NetApp Files&lt;/strong&gt; → select &lt;strong&gt;Create&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;The display name of the NetApp account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subscription&lt;/td&gt;
&lt;td&gt;Any subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resource group&lt;/td&gt;
&lt;td&gt;Any resource group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Location&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;The same region as the session hosts&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A NetApp account &lt;strong&gt;must be created in the region where the volumes will be deployed.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  [Step 2] Create a capacity pool
&lt;/h1&gt;

&lt;p&gt;In the NetApp account you created → &lt;strong&gt;Capacity pools&lt;/strong&gt; → &lt;strong&gt;+ Add pool&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;The display name of the capacity pool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Service level&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Standard / Premium / Ultra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size (TiB)&lt;/td&gt;
&lt;td&gt;Set as needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QoS type&lt;/td&gt;
&lt;td&gt;Auto / Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  [Step 3] Configure an Active Directory connection
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Before creating an SMB volume, you need to create an Active Directory connection.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3-1. Prepare the account used for the domain join
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An &lt;strong&gt;AD DS domain user account in the same domain&lt;/strong&gt; where the ANF computer accounts are created&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Permissions to create computer accounts&lt;/strong&gt; in the specified OU&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3-2. Create the Active Directory connection
&lt;/h2&gt;

&lt;p&gt;NetApp account → &lt;strong&gt;Active Directory connections&lt;/strong&gt; → &lt;strong&gt;Join&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Required fields
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Primary DNS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The IP address of the DNS server required for the domain join&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Secondary DNS&lt;/td&gt;
&lt;td&gt;Same as above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AD DNS Domain Name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The fully qualified domain name of the AD DS (for example, &lt;code&gt;contoso.com&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AD Site Name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The default is &lt;code&gt;Default-First-Site-Name&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SMB server (computer account) prefix&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The naming prefix for the computer accounts that ANF creates in AD DS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Username / Password&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The account used for the domain join, and its password&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Organizational unit path
&lt;/h3&gt;

&lt;p&gt;Specify the &lt;strong&gt;LDAP path&lt;/strong&gt; for the organizational unit (OU) where the SMB server computer accounts will be created. The format is &lt;code&gt;OU=second level, OU=first level&lt;/code&gt;. If no value is provided, the &lt;code&gt;CN=Computers&lt;/code&gt; container is used.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optional fields
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AES Encryption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enables AES encryption authentication support for the admin account of the AD connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LDAP Signing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Integrity verification for SASL LDAP binds between ANF and AD DS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LDAP over TLS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Secures communication between ANF and the AD LDAP server. &lt;strong&gt;Don't enable it with Microsoft Entra Domain Services&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backup policy users&lt;/td&gt;
&lt;td&gt;Grants privileges such as &lt;code&gt;SeBackupPrivilege&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security privilege users&lt;/td&gt;
&lt;td&gt;Grants &lt;code&gt;SeSecurityPrivilege&lt;/code&gt;. &lt;strong&gt;Supported only for SQL Server&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Registration complete&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjbbcttruxceycbnbksed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjbbcttruxceycbnbksed.png" alt=" " width="798" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  [Step 4] Create an SMB volume
&lt;/h1&gt;

&lt;p&gt;NetApp account → &lt;strong&gt;Volumes&lt;/strong&gt; → &lt;strong&gt;+ Add volume&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4-1. Basics tab
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Volume name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Any name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capacity pool&lt;/td&gt;
&lt;td&gt;The pool created in step 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Quota&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Regular volumes are &lt;strong&gt;50 GiB to 100 TiB&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Virtual network&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The Azure virtual network from which you want to access the volume&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subnet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The subnet delegated to ANF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Availability Zone&lt;/td&gt;
&lt;td&gt;None / the same zone as the session hosts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  4-2. Protocol tab
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Protocol type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;SMB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active Directory&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The connection created in step 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Share name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The share name that users see&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Enable Continuous Availability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ &lt;strong&gt;Enable it&lt;/strong&gt; (recommended for FSLogix)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMB3 Protocol Encryption&lt;/td&gt;
&lt;td&gt;When enabled, &lt;strong&gt;clients that don't use SMB3 encryption can't access the volume&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access Based Enumeration&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hides directories from users who don't have access permissions&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;After creation, the &lt;strong&gt;Mount path&lt;/strong&gt; is shown on the volume's &lt;strong&gt;Overview&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw1duyq2eaotz4ywvejcj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw1duyq2eaotz4ywvejcj.png" alt=" " width="799" height="332"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  [Step 5] Configure the registry
&lt;/h1&gt;

&lt;p&gt;Configure the following registry settings on the VMs that act as session hosts.&lt;/p&gt;

&lt;p&gt;Registry path: &lt;code&gt;HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Below is a list of settings taken from the official Microsoft documentation. &lt;code&gt;Enabled&lt;/code&gt; and &lt;code&gt;VHDLocations&lt;/code&gt; are required.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Official classification&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Enabled&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VHDLocations&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MULTI_SZ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;\\&amp;lt;anf-fqdn&amp;gt;\&amp;lt;share-name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VolumeType&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;REG_SZ&lt;/td&gt;
&lt;td&gt;&lt;code&gt;VHDX&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;&lt;code&gt;vhd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DeleteLocalProfileWhenVHDShouldApply&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FlipFlopProfileDirectoryName&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LockedRetryCount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LockedRetryInterval&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ReAttachIntervalSeconds&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ReAttachRetryCount&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProfileType&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Default&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SizeInMBs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DWORD&lt;/td&gt;
&lt;td&gt;30000&lt;/td&gt;
&lt;td&gt;Default&lt;/td&gt;
&lt;td&gt;30000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To configure them with PowerShell, use the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HKLM:\SOFTWARE\FSLogix\Profiles"&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Enabled"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"VHDLocations"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;MultiString&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"\\&amp;lt;anf-fqdn&amp;gt;\&amp;lt;share-name&amp;gt;"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"VolumeType"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;String&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"VHDX"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DeleteLocalProfileWhenVHDShouldApply"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"FlipFlopProfileDirectoryName"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"LockedRetryCount"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"LockedRetryInterval"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;15&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ReAttachIntervalSeconds"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;15&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ReAttachRetryCount"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New-ItemProperty&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$regPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SizeInMBs"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-PropertyType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;30000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deploying the settings with Group Policy
&lt;/h3&gt;

&lt;p&gt;Get the ADMX / ADML files here: &lt;a href="https://learn.microsoft.com/en-us/fslogix/how-to-use-group-policy-templates" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/fslogix/how-to-use-group-policy-templates&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Destination (domain)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fslogix.admx&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;%systemroot%\sysvol\domain\policies\PolicyDefinitions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fslogix.adml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;%systemroot%\sysvol\domain\policies\PolicyDefinitions\[MUIculture]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Policy location: &lt;strong&gt;Computer Configuration → Administrative Templates → FSLogix&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  [Step 6] Verify that it works
&lt;/h1&gt;

&lt;h2&gt;
  
  
  6-1. Check the service and the settings
&lt;/h2&gt;

&lt;p&gt;Run the following at a command prompt on the session host.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sc query frxsvc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confirm that it reports &lt;code&gt;STATE : RUNNING&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next, run the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reg query HKLM\SOFTWARE\FSLogix\Profiles
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confirm that &lt;code&gt;Enabled&lt;/code&gt; is &lt;code&gt;0x1&lt;/code&gt; and that &lt;code&gt;VHDLocations&lt;/code&gt; contains the ANF mount path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffvdx0wridd8adun2esob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffvdx0wridd8adun2esob.png" alt=" " width="697" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6-2. Check the file
&lt;/h2&gt;

&lt;p&gt;Connect to the session host and open the &lt;strong&gt;Mount path&lt;/strong&gt; in File Explorer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;\\&amp;lt;anf-volume-fqdn&amp;gt;\&amp;lt;share-name&amp;gt;\&amp;lt;username&amp;gt;_&amp;lt;SID&amp;gt;\Profile_&amp;lt;username&amp;gt;.vhd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuuuv50adcppb6huk1t4e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuuuv50adcppb6huk1t4e.png" alt=" " width="668" height="149"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6-3. Check that the profile roams
&lt;/h2&gt;

&lt;p&gt;Sign out of the first session host, sign in to a second session host, and if your desktop changes (wallpaper, file layout, and so on) carry over, it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/how-to-configure-profile-container-netapp" rel="noopener noreferrer"&gt;Store FSLogix profile containers on Azure NetApp Files - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/azure-netapp-files/azure-netapp-files-create-volumes-smb" rel="noopener noreferrer"&gt;Create an SMB volume for Azure NetApp Files - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/azure-netapp-files/create-active-directory-connections" rel="noopener noreferrer"&gt;Create and manage Active Directory connections for Azure NetApp Files - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/how-to-install-fslogix" rel="noopener noreferrer"&gt;Install FSLogix Applications - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/how-to-configure-profile-containers" rel="noopener noreferrer"&gt;Configure profile containers - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/how-to-configure-storage-permissions" rel="noopener noreferrer"&gt;Configure the storage permissions for profile containers - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/reference-configuration-settings" rel="noopener noreferrer"&gt;Configuration settings reference - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/overview-prerequisites" rel="noopener noreferrer"&gt;FSLogix prerequisites (antivirus exclusions) - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/fslogix/troubleshooting-old-temp-local-profiles" rel="noopener noreferrer"&gt;Troubleshoot old, temporary, and local profiles - Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>avd</category>
      <category>azure</category>
      <category>fslogix</category>
      <category>azurevirtualdesktop</category>
    </item>
  </channel>
</rss>
