<?xml version="1.0"?>
<rss version="2.0"><channel><title>Microsoft Intune Latest Topics</title><link>https://www.windows-noob.com/forums/forum/111-microsoft-intune/</link><description>Microsoft Intune Latest Topics</description><language>en</language><item><title>Any chance someone could help me with an Intune question related to SCEP Certificate?</title><link>https://www.windows-noob.com/forums/topic/23972-any-chance-someone-could-help-me-with-an-intune-question-related-to-scep-certificate/</link><description><![CDATA[<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	Hi all,
</p>

<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	I've been having this issue with SCEP cert not recognizing the users and going by system account, and that will cause the device show as "Not managed" in Okta.
</p>

<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	Could anyone point me to the right direction on how to resolve this problem? I've tried working with Intune Support but not help there.
</p>

<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	Any help would be appreciated since we've been stuck on this for a couple of months now.
</p>

<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	Thanks,
</p>

<p style="background-color:#ffffff;color:#1e1e1e;font-size:16px;text-align:left;">
	Alex
</p>

<p><a href="https://www.windows-noob.com/forums/uploads/monthly_2026_09/ScreenshotatSep2310-14-29.png.813422155ef99356f33f9d8226dc5c90.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="24533" src="https://www.windows-noob.com/forums/uploads/monthly_2026_09/ScreenshotatSep2310-14-29.thumb.png.028fc4b3e848166c43676791198e5eda.png" data-ratio="49.8" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot at Sep 23 10-14-29.png"></a></p>]]></description><guid isPermaLink="false">23972</guid><pubDate>Wed, 23 Sep 2026 19:20:26 +0000</pubDate></item><item><title>Secure boot certificates and older hardware</title><link>https://www.windows-noob.com/forums/topic/23954-secure-boot-certificates-and-older-hardware/</link><description><![CDATA[<h1>
	Introduction
</h1>

<p>
	I’m sure by now that we are all aware of the coming changes to Secure boot certificates as documented by Microsoft <a href="https://support.microsoft.com/en-us/topic/secure-boot-certificate-updates-guidance-for-it-professionals-and-organizations-e2b43f9f-b424-42df-bc6a-8476db65ab2f" rel="external nofollow">here</a>. To cut a long story short, when Secure Boot was introduced by Microsoft back in 2011 or so, they secured it with some default certificates which are set to <strong>expire in June 2026</strong>.
</p>

<p>
	Secure boot checks the bootloader and verifies it’s digital signature, if it’s trusted it allows it to run, otherwise it blocks it, which is a good way of blocking rootkits, bootkits and other low-level firmware attacks.
</p>

<p>
	Historically speaking Secure boot became part of UEFI 2.0 specification in January 2006, but Microsoft started rolling it out in 2011 including distributing the first Secure Boot signing certificates in 2011. These were later released to mainstream computers with the release of Windows 8 in October, 2012 where Microsoft required OEMs (Original Equipment Manufacturers) to enable Secure boot and ship systems with UEFI mode enabled.
</p>

<p>
	The original 2011 secure boot certificates were designed with a 15 year lifecycle, and in 2023 Microsoft introduced new 2023 certificate authorities. So here we are, all those years later, updating the bios (firmware) of modern laptops and desktops to ensure that they are capable of updating/supporting the new certificates prior to them expiring.
</p>

<p>
	There are plenty of good blog posts out there today showing you how to best deal with the  Secure Boot certificate problem, but they are really focusing on supported, modern hardware, below are some examples.
</p>

<ul>
	<li>
		<a href="https://blog.mindcore.dk/2026/04/secure-boot-certificate-update-intune/" rel="external nofollow">https://blog.mindcore.dk/2026/04/secure-boot-certificate-update-intune/</a>
	</li>
	<li>
		<a href="https://joymalya.com/intune-secure-boot-2023-certificate-update-rollout-part-1/" rel="external nofollow">https://joymalya.com/intune-secure-boot-2023-certificate-update-rollout-part-1/</a>
	</li>
	<li>
		<a href="https://pureinfotech.com/windows-11-secure-boot-certificates-expiring-june-2026/" rel="external nofollow">https://pureinfotech.com/windows-11-secure-boot-certificates-expiring-june-2026/</a>
	</li>
	<li>
		<a href="https://techcommunity.microsoft.com/blog/windows-itpro-blog/secure-boot-playbook-for-certificates-expiring-in-2026/4469235#community-4469235-_option2" rel="external nofollow">https://techcommunity.microsoft.com/blog/windows-itpro-blog/secure-boot-playbook-for-certificates-expiring-in-2026/4469235#community-4469235-_option2</a>
	</li>
</ul>

<h1>
	What about older hardware ?
</h1>

<p>
	But where does that leave older hardware that does support UEFI and secure boot, and should they be turned off/disposed of ? Security experts would most likely say yes to the  latter question as they’d be wide open to rootkits/bootkits which is a painful reality when you consider the cost of new computers today thanks to the AI boom.
</p>

<p>
	I’m actually writing this article on an old Lenovo T570, which technically is old, it was released in 2017, but has been updated with Windows 11 25H2, and 32GB ram. It’s not the snappiest but it works fine for what I need.
</p>

<p>
	I looked at Microsoft Intune’s infamous <strong>secure boot status report</strong> and it showed me lots of red x’s for my older hardware even though I was already pushing out remediation scripts in my Intune lab to deal with the Secure boot certificates expiry mess. The following were looking sad:
</p>

<ul>
	<li>
		Lenovo T570
	</li>
	<li>
		Dell Optiplex 9020
	</li>
	<li>
		Microsoft Surface Pro 2
	</li>
</ul>

<p>
	You can access this report in the Intune console by clicking on<span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3"> Reports, Windows Autopatch, Windows quality updates, Reports, and finally selecting the <strong>secure boot status</strong> report.</span>
</p>

<p>
	You can see the details of the report that I ran below, the green arrow shows my <strong>Lenovo T570</strong> is not up to date for any of the 4 certificates listed in the report.
</p>

<p>
	<img alt="lenovo-t570-not-up-to-date-2048x1086.png" class="alignnone size-large wp-image-9966" data-ratio="53.13" decoding="async" fetchpriority="high" height="339" sizes="(max-width: 640px) 100vw, 640px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/lenovo-t570-not-up-to-date-2048x1086.png 2048w, https://www.niallbrady.com/wp-content/uploads/2026/05/lenovo-t570-not-up-to-date-300x159.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/lenovo-t570-not-up-to-date-768x407.png 768w, https://www.niallbrady.com/wp-content/uploads/2026/05/lenovo-t570-not-up-to-date-1536x815.png 1536w" width="640" src="https://www.niallbrady.com/wp-content/uploads/2026/05/lenovo-t570-not-up-to-date-2048x1086.png">
</p>

<p>
	So I posted a <a href="https://x.com/ncbrady/status/2056445165800218882" rel="external nofollow">tweet</a> on Twitter (yeah, that’s what I call it) and got some instant feedback, which is the reason for this blog post. In the screenshot below you can see when the bios was last updated on my Lenovo (2024).
</p>

<p>
	<img alt="initial-tweet.png" class="alignnone size-full wp-image-9964" data-ratio="100.94" decoding="async" height="798" sizes="(max-width: 743px) 100vw, 743px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/initial-tweet.png 743w, https://www.niallbrady.com/wp-content/uploads/2026/05/initial-tweet-279x300.png 279w" width="743" src="https://www.niallbrady.com/wp-content/uploads/2026/05/initial-tweet.png">
</p>

<p>
	Fellow MVP, <a href="https://x.com/miketerrill" rel="external nofollow">Mike Terrill</a> responded with some great advice.
</p>

<blockquote>
	<p>
		<span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">You should still be able to push the certs into the <strong>active db</strong>. However, the <strong>default db</strong> wouldn’t get the updated certs. If you did a factory restore of the bios, then the active ones would be replaced and need to be installed again.</span>
	</p>
</blockquote>

<p>
	<img alt="mikes-advice.png" class="alignnone size-full wp-image-9968" data-ratio="100.40" decoding="async" height="1167" sizes="(max-width: 748px) 100vw, 748px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/mikes-advice.png 748w, https://www.niallbrady.com/wp-content/uploads/2026/05/mikes-advice-192x300.png 192w" width="748" src="https://www.niallbrady.com/wp-content/uploads/2026/05/mikes-advice.png">
</p>

<p>
	And he included some Powershell examples from his talk at <a href="https://mmsmoa.com/mms2026midway" rel="external nofollow">MMS</a>.
</p>

<p>
	I’m including his Powershell code below. All credit to <a href="https://x.com/miketerrill" rel="external nofollow">Mike Terill</a> and <a href="https://x.com/gwblok" rel="external nofollow">Gary Blok</a> (I believe).
</p>

<pre>$SecureBootRegPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot'
New-ItemProperty -path $SecureBootRegPath -name "AvailableUpdates" -PropertyType dword -Value 0x1844 -Force
Start-ScheduledTask -taskname '\Microsoft\Windows\PI\Secure-Boot-Update'
#verify
get-securebootuefi -decoded -name DB | Where-Object {$_.Subject -match "2023"} | Select subject
get-securebootuefi -decoded -name KEK | Where-Object {$_.Subject -match "2023"} | Select subject</pre>

<p>
	So basically I ran the code above on my Lenovo T570 (from an elevated prompt) and the results were interesting.
</p>

<p>
	Below we add a reg key and trigger a scheduled task. The registry value tells Windows to deploy all available certificate updates as documented <a href="https://support.microsoft.com/en-us/topic/registry-key-updates-for-secure-boot-windows-devices-with-it-managed-updates-a7be69c9-4634-42e1-9ca1-df06f43f360d" rel="external nofollow">here</a> and/or <a href="https://hitco.at/blog/uefi-secureboot-db-update-installieren/" rel="external nofollow">here</a> (thanks <a href="https://x.com/m0bilej0n/status/2061120853845114936" rel="external nofollow">Jon</a>).
</p>

<p>
	<img alt="add-reg-key-and-run-scheduled-task-2048x" class="alignnone size-large wp-image-9969" decoding="async" height="159" loading="lazy" sizes="auto, (max-width: 640px) 100vw, 640px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/add-reg-key-and-run-scheduled-task-2048x510.png 2048w, https://www.niallbrady.com/wp-content/uploads/2026/05/add-reg-key-and-run-scheduled-task-300x75.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/add-reg-key-and-run-scheduled-task-768x191.png 768w, https://www.niallbrady.com/wp-content/uploads/2026/05/add-reg-key-and-run-scheduled-task-1536x383.png 1536w" width="640" src="https://www.niallbrady.com/wp-content/uploads/2026/05/add-reg-key-and-run-scheduled-task-2048x510.png">
</p>

<p>
	and reveal the certificate status after a reboot
</p>

<p>
	<img alt="verify-certificate-status.png" class="alignnone size-full wp-image-9970" decoding="async" height="612" loading="lazy" sizes="auto, (max-width: 1482px) 100vw, 1482px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/verify-certificate-status.png 1482w, https://www.niallbrady.com/wp-content/uploads/2026/05/verify-certificate-status-300x124.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/verify-certificate-status-768x317.png 768w" width="1482" src="https://www.niallbrady.com/wp-content/uploads/2026/05/verify-certificate-status.png">
</p>

<p>
	To my joy, the following day the secure boot status report looked much much better for my Lenovo.
</p>

<p>
	<img alt="up-to-date-1-2048x739.png" class="alignnone size-large wp-image-9972" decoding="async" height="231" loading="lazy" sizes="auto, (max-width: 640px) 100vw, 640px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/up-to-date-1-2048x739.png 2048w, https://www.niallbrady.com/wp-content/uploads/2026/05/up-to-date-1-300x108.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/up-to-date-1-768x277.png 768w, https://www.niallbrady.com/wp-content/uploads/2026/05/up-to-date-1-1536x554.png 1536w" width="640" src="https://www.niallbrady.com/wp-content/uploads/2026/05/up-to-date-1-2048x739.png">
</p>

<p>
	Success! thanks Mike!
</p>

<p>
	I also got info from another Twitter user and he advised me to look here for some additional advice for patching older systems.
</p>

<ul>
	<li>
		<a href="https://www.elevenforum.com/t/garlins-powershell-scripts-for-updating-secure-boot-ca-2023.43423/" rel="external nofollow">https://www.elevenforum.com/t/garlins-powershell-scripts-for-updating-secure-boot-ca-2023.43423/</a>
	</li>
</ul>

<p>
	I did of course try the same method on some other old computers (Microsoft Surface Pro 2, Dell Optiplex 9020) and while it had some success with some of the certs, it couldn’t update the <strong>Microsoft Corporation KEK 2K CA 2023</strong> certificate. According to Copilot this was because the firmware on the Dell and Surface, was just too old.
</p>

<p>
	<img alt="kek-2k-ca-2023-not-up-to-date-2048x924.p" class="alignnone size-large wp-image-9974" decoding="async" height="289" loading="lazy" sizes="auto, (max-width: 640px) 100vw, 640px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/kek-2k-ca-2023-not-up-to-date-2048x924.png 2048w, https://www.niallbrady.com/wp-content/uploads/2026/05/kek-2k-ca-2023-not-up-to-date-300x135.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/kek-2k-ca-2023-not-up-to-date-768x346.png 768w, https://www.niallbrady.com/wp-content/uploads/2026/05/kek-2k-ca-2023-not-up-to-date-1536x693.png 1536w" width="640" src="https://www.niallbrady.com/wp-content/uploads/2026/05/kek-2k-ca-2023-not-up-to-date-2048x924.png">
</p>

<p>
	Perhaps, perhaps. But then why did my Surface Book 2, which has a firmware (bios) date of wait for it, 2015 update all of the 4 certificates without any issue. That remains to be seen. I’ll update this blog post as I learn more, I definitely don’t want to ‘trash’ some old computers just because their secure boot certificates can’t get updated, worst case scenario I’ll convert them to Linux.
</p>

<p>
	On My <strong>Surface Pro 2</strong> it updates 3 out of 4, the 4th being the missing KEK certificate, just like on the Dell.
</p>

<p>
	Looking in the SYSTEM event viewer, <strong>Event ID 1803</strong> is showing every time I trigger the scheduled task from the Powershell script.
</p>

<p>
	<img alt="event-viewer.png" class="alignnone size-full wp-image-9992" data-ratio="75.08" decoding="async" height="937" loading="lazy" sizes="auto, (max-width: 1785px) 100vw, 1785px" srcset="https://www.niallbrady.com/wp-content/uploads/2026/05/event-viewer.png 1785w, https://www.niallbrady.com/wp-content/uploads/2026/05/event-viewer-300x157.png 300w, https://www.niallbrady.com/wp-content/uploads/2026/05/event-viewer-768x403.png 768w, https://www.niallbrady.com/wp-content/uploads/2026/05/event-viewer-1536x806.png 1536w" width="1785" src="https://www.niallbrady.com/wp-content/uploads/2026/05/event-viewer.png">
</p>

<p>
	That links me to this:
</p>

<p>
	<a href="https://support.microsoft.com/en-us/topic/understanding-secure-boot-events-1802-and-1803-29a045f3-54bd-464b-bd16-d5989f82885d" rel="external nofollow">Understanding Secure Boot Events 1802 and 1803 – Microsoft Support</a>
</p>

<p>
	 
</p>

<h1>
	Learn more
</h1>

<p>
	Finally, if you want to learn more aboute this subject (better late than never) take a look at this <strong>Patch My PC</strong> webinar, or <a href="https://x.com/jarwidmark" rel="external nofollow">Johan Arwidmarks</a> free training on the subject:
</p>

<ul>
	<li>
		<a href="https://patchmypc.com/events/secure-boot-2026-are-you-actually-covered/" rel="external nofollow">https://patchmypc.com/events/secure-boot-2026-are-you-actually-covered/</a>
	</li>
	<li>
		<a href="https://academy.viamonstra.com/courses/mini-course-secure-boot-2026" rel="external nofollow">https://academy.viamonstra.com/courses/mini-course-secure-boot-2026</a>
	</li>
</ul>

<h1>
	Summary
</h1>

<p>
	Windows Autopatch on it’s own is not enough for getting these systems up-to-date with regards to the Secure boot certificate expiry. There are remediation scripts which definetly help, but they are mostly aimed at modern hardware.
</p>

<p>
	Thankfully, you can update <em><strong>some older hardware</strong></em> by using the example script above, either manually or push it out via Intune/ConfigMgr after you have of course ensured that the bios version is the latest available and that Windows is up-to-date.
</p>

<p>
	Thanks again to Mike, the beer is on me at MMS in October 
</p>
]]></description><guid isPermaLink="false">23954</guid><pubDate>Sun, 31 May 2026 18:08:56 +0000</pubDate></item><item><title>File permissions being stripped when accessing on prem file shares from Intune devices</title><link>https://www.windows-noob.com/forums/topic/23922-file-permissions-being-stripped-when-accessing-on-prem-file-shares-from-intune-devices/</link><description><![CDATA[<p>
	We started our Intune pilot a few weeks ago and we are finding that whenever a pilot user accesses an on-prem file share via a mapped drive, all of the inherited permissions are being removed, and the files are no longer visible or accessible.
</p>
]]></description><guid isPermaLink="false">23922</guid><pubDate>Wed, 19 Nov 2025 15:38:26 +0000</pubDate></item><item><title>Expediting updates using Windows Autopatch</title><link>https://www.windows-noob.com/forums/topic/23902-expediting-updates-using-windows-autopatch/</link><description><![CDATA[<h1>
	Introduction
</h1>

<p>
	In <a href="https://www.niallbrady.com/2025/08/30/august-cumulative-update-causing-windows-reset-problems/" rel="external">the previous post</a> I showed you what happens when a user or admin reset’s Windows after the August 2025 cumulative update (<a href="https://support.microsoft.com/help/5063875" rel="external nofollow">KB5063875</a>) , basically the reset fails (rolls back).
</p>

<p>
	<img alt="problem-resetting-your-pc-2.png" class="alignnone size-full wp-image-9568" decoding="async" height="768" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/problem-resetting-your-pc-2.png 1024w, https://www.niallbrady.com/wp-content/uploads/2025/08/problem-resetting-your-pc-2-300x225.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/problem-resetting-your-pc-2-768x576.png 768w" width="1024" src="https://www.niallbrady.com/wp-content/uploads/2025/08/problem-resetting-your-pc-2.png">
</p>

<p>
	That problem can be fixed by applying an <a href="https://support.microsoft.com/en-us/topic/august-19-2025-kb5066189-os-builds-22621-5771-and-22631-5771-out-of-band-ce99f225-f523-4d85-8039-54965e97d0ff" rel="external nofollow">out of band update</a> which can be deployed manually or automatically to affected clients.
</p>

<p>
	In this post I’ve once again teamed up with my buddy <a href="https://x.com/SCCMentor" rel="external nofollow">Paul</a> to automate fixing this reset problem using Windows Autopatch in Microsoft Intune. It has a feature to <a href="https://learn.microsoft.com/en-us/graph/windowsupdates-deploy-expedited-update" rel="external nofollow">Expedite update</a>s. We’ve both tested this in our separate labs and are happy to share the results with you so that you too, can fix this in an automated way using Windows Autopatch.
</p>

<h2>
	Expediting updates
</h2>

<p>
	As the name sounds, this allows us to expedite (rush) updates to an Entra ID group containing our target computers, and this method can be used to get Quality Updates including Out of band updates to your devices via Windows Autopatch. There are some prerequisites, listed below:
</p>

<ul>
	<li>
		Devices meet the <a data-linktype="relative-path" href="https://learn.microsoft.com/en-us/graph/windowsupdates-concept-overview#prerequisites" rel="external nofollow">prerequisites for Windows Autopatch</a>.
	</li>
	<li>
		Devices installed the update described in <a data-linktype="external" href="https://support.microsoft.com/topic/kb4023057-update-for-windows-10-update-service-components-fccad0ca-dc10-2e46-9ed1-7e392450fb3a" rel="external nofollow">KB4023057 – Update for Windows 10 Update Service components</a> (or a newer version).
	</li>
	<li>
		To verify that your devices meet the prerequisites for receiving an expedited update, use the <a data-linktype="absolute-path" href="https://learn.microsoft.com/en-us/windows/deployment/windows-autopatch/manage/windows-autopatch-windows-quality-update-programmatic-controls" rel="external nofollow">Readiness test for expediting updates</a>.
	</li>
</ul>

<p>
	Let’s create our Expedite updates policy.
</p>

<p>
	In Intune, browse to Devices, Windows Updates and select <strong>Quality Updates</strong>. In the <strong>Create +</strong> drop down, select <strong>Expedite policy</strong>.
</p>

<p>
	<img alt="create-expedite-update-policy.png" class="alignnone size-full wp-image-9569" decoding="async" height="759" loading="lazy" sizes="(max-width: 1193px) 100vw, 1193px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/create-expedite-update-policy.png 1193w, https://www.niallbrady.com/wp-content/uploads/2025/08/create-expedite-update-policy-300x191.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/create-expedite-update-policy-768x489.png 768w" width="1193" src="https://www.niallbrady.com/wp-content/uploads/2025/08/create-expedite-update-policy.png">
</p>

<p>
	Give the policy a suitable name and description. In the <strong>Select the quality update you would like to expedite</strong>, select the 08/26/2025 D Update for Windows 10 and later option.
</p>

<p>
	<img alt="select-d-update.png" class="alignnone size-full wp-image-9570" decoding="async" height="956" loading="lazy" sizes="(max-width: 996px) 100vw, 996px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/select-d-update.png 996w, https://www.niallbrady.com/wp-content/uploads/2025/08/select-d-update-300x288.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/select-d-update-768x737.png 768w" width="996" src="https://www.niallbrady.com/wp-content/uploads/2025/08/select-d-update.png">
</p>

<p>
	If you are wondering what the <strong>D Update</strong> and <strong>B Security Updates</strong> are, here’s an explanation.
</p>

<p data-end="185" data-start="170">
	<strong data-end="183" data-start="170">B updates</strong>
</p>

<ul>
	<li data-end="277" data-start="190">
		Released on the <strong>second Tuesday</strong> of each month (commonly called <strong data-end="273" data-start="256">Patch Tuesday</strong>).
	</li>
	<li data-end="403" data-start="282">
		These are the <strong>mandatory</strong>, cumulative updates that include <strong data-end="361" data-start="343">security fixes</strong> and sometimes reliability improvements.
	</li>
</ul>

<p>
	<strong data-end="517" data-start="504">D updates</strong>
</p>

<ul>
	<li data-end="606" data-start="524">
		Released on the <strong data-end="568" data-start="540">fourth week </strong>of the month (usually the <strong data-end="602" data-start="582">preview releases</strong>).
	</li>
	<li data-end="666" data-start="611">
		These are <strong>optional</strong>, non-security preview updates.
	</li>
	<li data-end="763" data-start="671">
		They contain <strong data-end="710" data-start="684">fixes and improvements</strong> that will roll into the next month’s <strong data-end="760" data-start="748">B update</strong>.
	</li>
</ul>

<p data-end="895" data-start="877">
	to summarize…
</p>

<ul>
	<li data-end="943" data-start="898">
		<strong data-end="941" data-start="898">B </strong>= Security &amp; required (Patch Tuesday)
	</li>
	<li data-end="943" data-start="898">
		<strong data-end="1006" data-start="946">D </strong>= Optional preview (late month, contains fixes but no new security fixes)
	</li>
</ul>

<p>
	So, as we already have deployed the August Cumulative update that would be the B update. We definitely need the fixes (out of band) that came after that and that would be the contained in the <strong>D</strong> updates.
</p>

<p>
	Finally, if a reboot is required (and it is required), decide on how many days before it’s enforced,  so we’ll set it to 0 days.
</p>

<p>
	<img alt="0-days.png" class="alignnone size-full wp-image-9571" decoding="async" height="418" loading="lazy" sizes="(max-width: 982px) 100vw, 982px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/0-days.png 982w, https://www.niallbrady.com/wp-content/uploads/2025/08/0-days-300x128.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/0-days-768x327.png 768w" width="982" src="https://www.niallbrady.com/wp-content/uploads/2025/08/0-days.png">
</p>

<p>
	After clicking <strong>Next</strong>, select the group(s) you want to target with these out of band updates.
</p>

<p>
	<img alt="add-groups.png" class="alignnone size-full wp-image-9572" decoding="async" height="1173" loading="lazy" sizes="(max-width: 980px) 100vw, 980px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/add-groups.png 980w, https://www.niallbrady.com/wp-content/uploads/2025/08/add-groups-251x300.png 251w, https://www.niallbrady.com/wp-content/uploads/2025/08/add-groups-768x919.png 768w" width="980" src="https://www.niallbrady.com/wp-content/uploads/2025/08/add-groups.png">
</p>

<p>
	Don’t worry about the fact that there’s no devices in that group yet, we’ll add them as needed later.
</p>

<p>
	Click <strong>Next</strong> and the policy is created.
</p>

<p>
	<img alt="policy-is-created.png" class="alignnone size-full wp-image-9573" decoding="async" height="803" loading="lazy" sizes="(max-width: 2258px) 100vw, 2258px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created.png 2258w, https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created-300x107.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created-2048x728.png 2048w, https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created-768x273.png 768w, https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created-1536x546.png 1536w" width="2258" src="https://www.niallbrady.com/wp-content/uploads/2025/08/policy-is-created.png">
</p>

<p>
	Finally, when you are ready to test this add one or more devices to the target Entra Id groups.
</p>

<p>
	<img alt="add-devices.png" class="alignnone size-full wp-image-9577" decoding="async" height="631" loading="lazy" sizes="(max-width: 1326px) 100vw, 1326px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/08/add-devices.png 1326w, https://www.niallbrady.com/wp-content/uploads/2025/08/add-devices-300x143.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/08/add-devices-768x365.png 768w" width="1326" src="https://www.niallbrady.com/wp-content/uploads/2025/08/add-devices.png">
</p>

<p>
	After the device gets the policy, and as long as there are no policy conflicts your end users should be notified about the pending restart.
</p>

<p>
	<img alt="update-restart-required-1.png" class="alignnone size-full wp-image-9588" decoding="async" height="957" loading="lazy" sizes="(max-width: 1277px) 100vw, 1277px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/09/update-restart-required-1.png 1277w, https://www.niallbrady.com/wp-content/uploads/2025/09/update-restart-required-1-300x225.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/09/update-restart-required-1-768x576.png 768w" width="1277" src="https://www.niallbrady.com/wp-content/uploads/2025/09/update-restart-required-1.png">
</p>

<p>
	 
</p>

<p>
	After the restart is completed, you can verify Windows update settings, and view the history. The latest OOB (Out of band) update should be installed and as it’s also cumulative it will contain the fix to allow Windows reset to work again.
</p>

<p>
	<img alt="latest-update-installed.png" class="alignnone size-full wp-image-9589" decoding="async" height="956" loading="lazy" sizes="(max-width: 1272px) 100vw, 1272px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/09/latest-update-installed.png 1272w, https://www.niallbrady.com/wp-content/uploads/2025/09/latest-update-installed-300x225.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/09/latest-update-installed-768x577.png 768w" width="1272" src="https://www.niallbrady.com/wp-content/uploads/2025/09/latest-update-installed.png">
</p>

<p>
	Job done!
</p>

<h1>
	Summary
</h1>

<p>
	While this ability to expedite updates in Windows Autopatch is welcome, it’s far from perfect. There are several problems, which we’ll list here:
</p>

<p>
	<strong>Speed of delivery.</strong> The <a href="https://learn.microsoft.com/en-us/graph/windowsupdates-deploy-expedited-update" rel="external nofollow">blurb</a> from Microsoft claims the following, highlighted below
</p>

<p>
	<img alt="starts-right-away.png" class="alignnone size-full wp-image-9590" decoding="async" height="238" loading="lazy" sizes="(max-width: 1074px) 100vw, 1074px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/09/starts-right-away.png 1074w, https://www.niallbrady.com/wp-content/uploads/2025/09/starts-right-away-300x66.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/09/starts-right-away-768x170.png 768w" width="1074" src="https://www.niallbrady.com/wp-content/uploads/2025/09/starts-right-away.png">
</p>

<p>
	But in several VM’s where myself and Paul tested, the expedited update arrived in an anything but their claimed speed. In reality, the update took several hours to approx one day and numerous syncs on the clients and in the Intune console before we saw the popup. On some vm’s we are still waiting for the magic to happen even though all the prerequisites are in place.
</p>

<p>
	<span style="color: #0000ff;">Update: We got a reply from <strong>Peter Braune</strong> <a href="https://x.com/peterbraune2/status/1962660675659980923" style="color: #0000ff;" rel="external nofollow">on Twitter</a>, who stated the following, it may help you if you are going down this path.</span>
</p>

<blockquote>
	<p>
		<span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">We actually had to create a policy via settings catalog “Automatically receive optional updates”, to get this update rolling out to clients. Once the policy was in place the update was installed immediately. Downside, preview updates being rolled out automatically too.</span>
	</p>
</blockquote>

<p>
	<strong>Lack of ability to target a specific hotfix.  </strong>You you can only choose between B or D updates and hope that they include the fix you need. What we really wanted was to be able to specficially install <strong>KB5066189</strong>, but that’s not possible currently with this method via the console.
</p>

<p>
	<strong>Lack luster reporting.</strong> If you want to see what’s happening with your expedited update in real time then you are out of luck. Of the several machines we targeted the reporting suggested nothing was wrong, which in a way was true because nothing was happening. And that’s the problem, how can you quickly determine whether your hotfix is applied or not to these target devices ?
</p>

<p>
	<img alt="expedite-report.png" class="alignnone size-full wp-image-9591" data-ratio="45.60" decoding="async" height="456" loading="lazy" sizes="(max-width: 1669px) 100vw, 1669px" srcset="https://www.niallbrady.com/wp-content/uploads/2025/09/expedite-report.png 1669w, https://www.niallbrady.com/wp-content/uploads/2025/09/expedite-report-300x82.png 300w, https://www.niallbrady.com/wp-content/uploads/2025/09/expedite-report-768x210.png 768w, https://www.niallbrady.com/wp-content/uploads/2025/09/expedite-report-1536x420.png 1536w" width="1669" src="https://www.niallbrady.com/wp-content/uploads/2025/09/expedite-report.png">
</p>

<p>
	<strong>Policy conflicts</strong>. After enabling Expedited updates, you might end up troubleshooting policy conflicts on your target devices if your tenant has had the following installed. <strong>Windows Autopatch – Office Update Configuration – Expedited (Expedited updates for CVE-2023-23397)</strong>.
</p>

<p>
	Hopefully Microsoft is listening and will improve this service going forward.
</p>

<p>
	That’s it from us, see you in the next one.
</p>
]]></description><guid isPermaLink="false">23902</guid><pubDate>Wed, 03 Sep 2025 15:10:36 +0000</pubDate></item><item><title>How can I send notification messages using PowerShell in Microsoft Intune</title><link>https://www.windows-noob.com/forums/topic/16014-how-can-i-send-notification-messages-using-powershell-in-microsoft-intune/</link><description><![CDATA[
<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	Occasionally you want to inform users about something, such as the need to update or install software, and the easiest way to do that is with some sort of a popup notification. The ability to do that in Microsoft Intune is not currently available in the product although it is a <a href="https://microsoftintune.uservoice.com/forums/291681-ideas/suggestions/8305188-push-notification-of-user-via-sms-email-or-messag" rel="external nofollow">Uservoice item in progress</a>. In the meantime however, if you need to send a notification to users of Windows devices in Microsoft Intune, it's possible using PowerShell and here's how to do it.
</p>

<p>
	The idea here is that you can customize the PowerShell script to deliver the message you want (and if necessary take possible actions, however you need to add your custom code to the script and it must not exceed 200KB). the screenshots below are taken on a Windows 10 version 1709 device enrolled into Intune, the device is logged on as a user with normal permissions (not an Administrator) and this was configured with Windows AutoPilot.
</p>

<p>
	<span style="color:#e74c3c;"><strong>Note</strong>: The <a href="https://docs.microsoft.com/en-us/intune/intune-management-extension" rel="external nofollow">Intune management extension</a> which is used to run the PowerShell script has the following prerequisites:</span>
</p>

<ul class="lf-text-block lf-block" data-lf-anchor-id="c105263444262130dc608bc21380cc10:0">
<li>
		Devices must be joined to Azure AD
	</li>
	<li class="x-hidden-focus">
		Devices must run Windows 10, version 1607 or later
	</li>
</ul>
<p>
	<span style="font-size:24px;">Step 1. Download the script</span>
</p>

<p>
	Download the DisplayMessageInIntune.ps1 script.
</p>

<p>
	<a class="ipsAttachLink" contenteditable="false" data-fileext="zip" data-fileid="19255" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=19255" rel="">DisplayMessageInIntune.zip</a>
</p>

<p>
	<span style="font-size:24px;">Step 2. Edit the script in ISE</span>
</p>

<p>
	Launch PowerShell ISE and open the extracted downloaded script. Scroll down to the following values. The values are currently set as PowerShell Parameters with the hope that the current functionality in Microsoft Intune will support Params with PowerShell scripts in the future (I've requested this ability as a DCR to Microsoft directly). If this ability does come to Intune then I will blog an update to this post explaining how to make it dynamic.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19256" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/parameters.png.2977a574589c6b435fc92c4b0fa92585.png" rel=""><img alt="parameters.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19256" data-unique="508ja51tt" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/parameters.thumb.png.0ccfe7f198d2c5c91faf8eacced4a9f6.png"></a>
</p>

<p>
	When you've changed the message <strong>title</strong> and <strong>message</strong> body, you might also want to change the <strong>Type</strong> and <strong>Option</strong> available to the user, below are the values you can configure.
</p>

<p>
	$Option can be any of the following values
</p>

<p>
	"OK"<br>
	"OKCancel"<br>
	"AbortRetryIgnore"<br>
	"YesNoCancel"<br>
	"YesNo"<br>
	"RetryCancel"
</p>

<p>
	$Type can be any of the following values
</p>

<p>
	"Asterisk"<br>
	"Error"<br>
	"Exclamation"<br>
	"Hand"<br>
	"Information"<br>
	"None"<br>
	"Question"<br>
	"Stop"<br>
	"Warning "
</p>

<p>
	<br>
	Finally after line 69 you can add any additional code you want, for example to check what key was pressed etc.
</p>

<p>
	<span style="font-size:24px;">Step 3. Upload the script to Microsoft Intune</span>
</p>

<p>
	In the <a href="https://portal.azure.com" rel="external nofollow">Intune service</a> in Azure select Device Configuration and click on PowerShell Scripts.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19257" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a72f4ba48f21_deviceconfiguration.png.a96e997275b7c3aac991b145c5a89cdb.png" rel=""><img alt="device configuration.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19257" data-unique="g1dxoeesh" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a72f4be0f296_deviceconfiguration.thumb.png.b54f5b3013f302a54cc2c842fd47f8b9.png"></a>
</p>

<p>
	In PowerShell scripts, click on Add.
</p>

<p>
	Enter the following values:
</p>

<p>
	<strong>Name:</strong> "Display a message in Intune"
</p>

<p>
	<strong>Description:</strong> "Using PowerShell to messages in Intune"
</p>

<p>
	<strong>Script location:</strong> DisplayMessageInIntune.ps1
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19260" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a72f5fe2f647_uploadscript.png.d524c8f7eeb353d75fbbc8e56ef9adee.png" rel=""><img alt="upload script.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19260" data-unique="xflkyjj17" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a72f60170758_uploadscript.thumb.png.dbce0e3f0a890628af0dcc5a48c3a100.png"></a>
</p>

<p>
	Next click on Settings, Configure to see the options available, 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19261" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a73002b3b429_configurescriptsettings.png.74ca68cd39f834172ef7313603318b40.png" rel=""><img alt="configure script settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19261" data-unique="bktrqtsmb" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a73003074246_configurescriptsettings.thumb.png.e857b885691d6cfd63515d0898e34c12.png"></a>
</p>

<p>
	Change the first option so that the script runs with the same permissions as the logged on user.
</p>

<p>
	<img alt="run as user.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19268" data-unique="o67ii8wpr" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a733304d1d3f_runasuser.png.a19a3e04224c5ee14c1b7e3613b2157c.png"></p>

<p>
	Click <strong>OK</strong> when done and then click on <strong>Create</strong> to create the PowerShell script in Intune.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19262" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a7300e5996dd_assignpowershell.png.776fea0a24e2a44aa84d8afd6dea095f.png" rel=""><img alt="assign powershell.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19262" data-unique="rs0nhwt0z" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a7300e918b40_assignpowershell.thumb.png.1b3e6ba42d28d0cbe87d1ade91a7d417.png"></a>
</p>

<p>
	Next click on <strong>Assignments </strong>to assign the PowerShell script to a Group of Users.
</p>

<p>
	To do that, click on <strong>Select Groups</strong> and then select a Group of Users that you'd like to assign this to.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19263" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/assignments.png.b152b001e0fc0874b5c8f1a55e07e823.png" rel=""><img alt="assignments.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19263" data-unique="kax6q3n48" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/assignments.thumb.png.53e2c8640f9118d33245c61da0fa21af.png"></a>
</p>

<p>
	Next click on <strong>Save</strong> to save this group.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19265" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/save.png.a69c5699632cf3aaf770254a3f8ec8db.png" rel=""><img alt="save.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19265" data-unique="bdwfd8jwa" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/save.thumb.png.c5fe065a51eae4cfe98dccab03d08da1.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 4. Review what happens on a Windows device</span>
</p>

<p>
	On a Windows device, logon using the credentials of a user that is in the selected group that you assigned the PowerShell script to.
</p>

<p>
	Tip: You can restart the <strong>Microsoft Intune Management Extension</strong> service (as a user account with Administrator permissions) rather than wait one hour for that extension service to run the PowerShell script.
</p>

<p>
	<img alt="restart the microsoft intune management service.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19266" data-unique="ew1m7mu3f" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a732e41b4cf3_restartthemicrosoftintunemanagementservice.png.3896e6385aae703a961263ced4f74b72.png"></p>

<p>
	Note: Your users don't need to do the service restart, this is just so you get instant gratification and can review the end-result.
</p>

<p>
	After the policy is received the message popup is displayed on top of all windows.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19267" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a732e77eb354_thisisapopupmessage.png.6defeb5cbbd6751c012cf383c09c6eea.png" rel=""><img alt="this is a popup message.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19267" data-unique="z9ckr6kbd" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a732e80dbdda_thisisapopupmessage.thumb.png.49b0d6ae88549c0eb51825218642947c.png"></a>
</p>

<p>
	result !
</p>

<p>
	<span style="font-size:24px;">Troubleshooting</span>
</p>

<p>
	You can review 2 logs files, one is the log file for Microsoft Intune Management Extension:
</p>

<p>
	<strong>C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19269" href="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a7334a04e0fc_intunemanagementextensionlog.png.b888c22daa2d664d60f37d68831febd9.png" rel=""><img alt="intune management extension log.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19269" data-unique="usxo5unz5" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a7334a739544_intunemanagementextensionlog.thumb.png.1eec523bb875a2277b9d709e69099394.png"></a>
</p>

<p>
	and the other is generated by the PowerShell script itself:
</p>

<p>
	<strong>C:\Windows\Temp\DisplayMessageInIntune.log</strong>
</p>

<p>
	<img alt="DisplayMessageInIntune log.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19270" data-unique="ucad6l1rs" style="" src="https://www.windows-noob.com/forums/uploads/monthly_2018_02/5a7334bb9314f_DisplayMessageInIntunelog.png.25ce3511456c84dbf9d1f6be34fdc17c.png"></p>

<p>
	<span style="color:#ff0000;">Note: If you want to display the message to a user in SYSTEM context then download <strong>serviceUI.exe</strong> from the </span><a href="https://www.microsoft.com/en-us/download/details.aspx?id=54259" rel="external nofollow"><span style="color:#ff0000;">MDT toolkit a</span></a><span style="color:#ff0000;">nd launch powershell with that exe, like so... and create a Win32 App instead of using a PowerShell script option.</span>
</p>

<pre class="ipsCode" id="ips_uid_9164_6">
ServiceUI.exe -process:explorer.exe %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File DisplayMessageInIntune.ps1</pre>

<p>
	<span style="font-size:24px;">Recommended reading</span>
</p>

<ul>
<li>
		<a href="https://docs.microsoft.com/en-us/intune/intune-management-extension" ipsnoembed="true" rel="external nofollow">https://docs.microsoft.com/en-us/intune/intune-management-extension</a>
	</li>
	<li>
		<a href="https://oliverkieselbach.com/2017/11/29/deep-dive-microsoft-intune-management-extension-powershell-scripts/" ipsnoembed="true" rel="external nofollow">https://oliverkieselbach.com/2017/11/29/deep-dive-microsoft-intune-management-extension-powershell-scripts/</a>
	</li>
	<li>
		<a href="https://www.petervanderwoude.nl/post/combining-the-powers-of-the-intune-management-extension-and-chocolatey/" ipsnoembed="true" rel="external nofollow">https://www.petervanderwoude.nl/post/combining-the-powers-of-the-intune-management-extension-and-chocolatey/</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">16014</guid><pubDate>Thu, 01 Feb 2018 15:48:20 +0000</pubDate></item><item><title>Encrypting devices during Windows Autopilot provisioning (WhiteGlove) - Part 1</title><link>https://www.windows-noob.com/forums/topic/23198-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-1/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	<span style="color:#e74c3c;"><strong>Note</strong>: This method is not officially supported by Microsoft. That said, this <strong>speeds up compliance</strong> and more importantly <strong>increases security</strong> as the device is <strong>already encrypted</strong> (<a href="https://www.windows-noob.com/forums/topic/23198-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-1" rel="">part 1</a>) before the user logs on (<a href="https://www.windows-noob.com/forums/topic/23201-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-2" rel="">part 2</a>). BitLocker recovery key changes after the user has completed enrolment are handled automatically (<a href="https://www.windows-noob.com/forums/topic/23202-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-3" rel="">part 3</a>).</span>
</p>

<p>
	<strong>Note: I've updated the scripts 2023/12/23 to use new logging path and detection files instead of registry keys.</strong>
</p>

<p>
	Windows Autopilot preprovisioning (WhiteGlove) is the ability to preprovision content and policies to devices while they are installed in the factory.
</p>

<p>
	We had a challenge to speed up the overall compliance of Windows Autopilot devices and the obvious solution was to stage as much content as we could during preprovisioning (<a href="https://learn.microsoft.com/en-us/mem/autopilot/pre-provision" rel="external nofollow" target="_blank">WhiteGlove</a>) but to also enable BitLocker encryption during that process, the only problem is that Microsoft don't officially support BitLocker encryption during the WhiteGlove scenario as the recovery key information is only uploaded after a user logs in. In our initial testing, Bitlocker disk encryption wouldn't even start until the user logged in.
</p>

<p>
	That is not so much of a problem for a small amount of content on the hard disc but what if you have hundreds of Gigabytes of data to encrypt which could <strong>potentially take hours to encrypt after the user has logged on</strong>. As BitLocker encryption is a common Compliance policy setting, this needed to be addressed.
</p>

<p>
	The challenge was to do the heavy lifting (pre-provisioning and encryption) during the WhiteGlove process and to only upload the key to Intune once the user actually enrolled the device. That need brought about this solution which is in 3 parts. The first part covers <strong>device encryption during provisioning at the factory</strong>. The second part <strong>uploads the recovery key to Intune</strong> after the user has signed in and completed WHFB setup and the final part moves those successfully encrypted devices to a <strong>WhiteGlove_Completed</strong> azure ad group targeted with BitLocker policy to take care of rotating recovery key info etc.
</p>

<p>
	All parts are listed below:
</p>

<ul>
	<li>
		<a href="https://www.windows-noob.com/forums/topic/23198-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-1" rel="">Encrypting devices during Windows Autopilot provisioning (WhiteGlove) - Part 1</a> <strong>&lt;- you are here</strong>
	</li>
	<li>
		<a href="https://www.windows-noob.com/forums/topic/23201-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-2" rel="">Encrypting devices during Windows Autopilot provisioning (WhiteGlove) - Part 2</a>
	</li>
	<li>
		<a href="https://www.windows-noob.com/forums/topic/23202-encrypting-devices-during-windows-autopilot-provisioning-whiteglove-part-3" rel="">Encrypting devices during Windows Autopilot provisioning (WhiteGlove) - Part 3</a>
	</li>
</ul>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 1. Create an Azure AD group</span>
</p>

<p>
	In Microsoft Intune, create a dynamic device group called <strong>WhiteGlove Computers</strong> with a query for a <strong>WhiteGlove</strong> Group Tag. This group will dynamically fill with computers that have the correct Group Tag assigned to them.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23688" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/createazureadgroupwithgrouptag.png.fd13a2f1597fa21d6fbd3646d7bc9360.png" rel=""><img alt="create azure ad group with grouptag.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23688" data-ratio="31.10" data-unique="uwtf0k3za" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/createazureadgroupwithgrouptag.thumb.png.11c2cc57d228fe87f04819d454ded81d.png"></a>
</p>

<p>
	Below is the query used:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_4567_5" style=""><span class="pln">(device.devicePhysicalIds -any (_ -eq "[OrderID]:WhiteGlove"))</span></pre>

<p>
	<span style="font-size:24px;">Step 2. Exclude BitLocker configuration profiles from this group</span>
</p>

<p>
	Locate any existing BitLocker configuration profiles in your tenant and exclude then from this group otherwise they will cause the solution to fail.
</p>

<p>
	<img alt="exclude bitlocker policy.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23689" data-ratio="107.79" data-unique="qrz7efk0m" width="693" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/excludebitlockerpolicy.png.d0a551e338a2d5755632d5eaf9462b66.png">
</p>

<p>
	<span style="font-size:24px;">Step 3. Allow Pre-provisioned deployment</span>
</p>

<p>
	Next, locate your Windows Autopilot Deployment Profiles and enable the <strong>WhiteGlove</strong> ability by turning on the<strong> </strong><strong>Allow Pre-provisioned deployment</strong> setting. Deploy the profile to the group created in Step 1. This profile must also enable a <strong>User Account Type</strong> of <strong>Local Admin</strong>. Don't panic, we'll be removing this local admin ability later on in the solution before the end user can cause trouble.
</p>

<p>
	In the example below you can see a Windows Autopilot deployment profile called <strong>Intune: Local admin</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23690" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WindowsAutopilotDeploymentProfilesettings.png.e76a2cc432593c05a899363bdc715097.png" rel=""><img alt="Windows Autopilot Deployment Profile settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23690" data-ratio="88.44" data-unique="k194d5lkv" width="848" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WindowsAutopilotDeploymentProfilesettings.thumb.png.eff0659b1e810d55449d24f45e6f42c2.png"></a>
</p>

<p>
	 
</p>

<p>
	<br>
	<span style="font-size:24px;">Step 4. Exclude standard user deployment profiles</span>
</p>

<p>
	If you have any additional Deployment Profiles for Standard Users, make sure to exclude this group from those profiles otherwise they won't get the right settings needed for the second part of this solution.
</p>

<p>
	<img alt="exclude standard user deployment profiles.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23691" data-ratio="86.71" data-unique="6wghzz097" width="865" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/excludestandarduserdeploymentprofiles.png.ee280602de8b6562f11aed2e7f001dfb.png">
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 5. Configure a WhiteGlove ESP</span>
</p>

<p>
	Configure at least one Enrollment Status Page (ESP) targeted to your WhiteGlove Computers Azure AD group
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23697" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WhiteGloveESP.png.04450dd93cd95c9d1e02e08a55ca9f3b.png" rel=""><img alt="WhiteGlove ESP.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23697" data-ratio="90.47" data-unique="rutot1ip6" width="829" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WhiteGloveESP.thumb.png.07ac071a6261c3c2331ffb779fa5d8e7.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 6. Add a Win32 App</span>
</p>

<p>
	Next, using the latest version of the <strong>IntuneWinappUtil.exe</strong> app, create a Win32 app called <strong>Enable Bitlocker during Windows Autopilot WhiteGlove</strong>. This app will enable Bitlocker during WhiteGlove at the factory. The app is in the attached 7 ZIP file, use <a href="https://7-zip.org/" rel="external nofollow">7-Zip</a> to uncompress.
</p>

<p>
	<span style="color:#e74c3c;">Note: Only logged on members of windows-noob.com can download this file.</span>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="7z" data-fileid="24011" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=24011&amp;key=ef912000abdc6ffcf35cbc4b40b62525" rel="">WhiteGlove - Enable BitLocker During WhiteGlove preprovisioning.7z</a>
</p>

<p>
	 
</p>

<p>
	Configure the app settings as follows:
</p>

<p>
	Name: <strong>Enable Bitlocker during Windows Autopilot WhiteGlove</strong><br>
	Program Install command: <strong>install.win.ap.enable.bitlocker.during.whiteglove.cmd</strong><br>
	Program uninstall command:<strong> install.win.ap.enable.bitlocker.during.whiteglove.cmd</strong><br>
	Install behavior: <strong>System</strong><br>
	Device restart behavior: <strong>No specific action</strong><br>
	Return codes:<br>
	0 Success<br>
	1707 Success<br>
	3010 Soft reboot<br>
	1641 Hard reboot<br>
	1618 Retry
</p>

<p>
	Requirements:
</p>

<p>
	Operating system architecture: <strong>x64</strong><br>
	Minimum operating system <strong>Windows 10 1903</strong>
</p>

<p>
	Detection rules:
</p>

<p>
	Rules format <strong>Manually configure detection rules</strong>
</p>

<p>
	Detection rules File
</p>

<p>
	Path:<strong> C:\ProgramData\windowsnoob\WhiteGlove</strong>
</p>

<p>
	File or folder: <strong>EncryptedDuringWhiteGlove.txt</strong>
</p>

<p>
	Detection method:<strong> File or folder exists</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="PNG" data-fileid="24010" href="https://www.windows-noob.com/forums/uploads/monthly_2023_12/detectionrule.PNG.0dac1a43923f4a73943194f8a2a1eb86.PNG" rel=""><img alt="detection rule.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="24010" data-ratio="29.00" data-unique="xzk2x16y6" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_12/detectionrule.thumb.PNG.a2a37be399f8556622cee0a19e75aaf6.PNG"></a>
</p>

<p>
	Next, assign the app as <strong>required</strong> to your <strong>WhiteGlove Computers</strong> AAD group
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23699" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/assignments.png.85b525b53197aaeea25f2331eacfb219.png" rel=""><img alt="assignments.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23699" data-ratio="29.80" data-unique="u7qprmddo" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/assignments.thumb.png.566b7f55585ae41eb12c23fec250742e.png"></a>
</p>

<p>
	<br>
	<span style="font-size:24px;">Step 7. Add the Group tag to a test device</span>
</p>

<p>
	In this step either import a new CSV of a Windows Autopilot device (or use an existing device) to test this on, and then add the <strong>WhiteGlove</strong> GroupTag to that Windows Autopilot device.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23693" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/whiteglovegrouptag.png.c2e0234f9a99278132e4d91d92136ccd.png" rel=""><img alt="whiteglove group tag.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23693" data-ratio="57.80" data-unique="2umsizwyt" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/whiteglovegrouptag.thumb.png.9458dc4d04d87357f3465198dca65005.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 8. Provision the device</span>
</p>

<p>
	The staging of content and policies to the device normally will take place at the factory (OEM) or IT Admin staging area. At the first screen of OOBE (shown below)
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23694" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/oobefirstscreen.png.4ff49fdb706e3960bf42aa393d56890b.png" rel=""><img alt="oobe first screen.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23694" data-ratio="75.00" data-unique="5e1vinubq" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/oobefirstscreen.thumb.png.e73555bdcf378506814169ad11f84db0.png"></a>
</p>

<p>
	The technician needs to press the <strong>Windows key</strong> 5 times to start provisioning mode.
</p>

<p>
	Next, Select <strong>Windows Autopilot provisioning</strong> from the list and click <strong>Continue</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23695" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WindowsAutopilotProvisioning.png.5b53663670fdc07780a9d3f265d320c7.png" rel=""><img alt="Windows Autopilot Provisioning.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23695" data-ratio="75.00" data-unique="uyz0329cs" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/WindowsAutopilotProvisioning.thumb.png.6ff0f478f8a78da780ad776671cbd2bc.png"></a>
</p>

<p>
	If everything went well it will download the correct <strong>Windows Autopilot deployment profile</strong> and display it (<strong>Intune: Local admin</strong>)
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23706" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/correctESPloaded.png.d31d8a6ad66af84196c1d4e26c975d9b.png" rel=""><img alt="correct ESP loaded.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23706" data-ratio="75.00" data-unique="pxmkjtozv" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/correctESPloaded.thumb.png.c0a29c955dbffcdabd96fa91f1dc5f35.png"></a>
</p>

<p>
	Click <strong>Provision</strong> to start the staging process.
</p>

<p>
	Once the ESP installs the Win32 app, it will begin encrypting the drive. You can reveal this with the following command:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_1556_5" style=""><span class="pln">manage-bde -status</span></pre>

<p>
	The next screenshots are from real hardware.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="JPG" data-fileid="23700" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/IMG_7002.JPG.d993d55395647c2c960b9e5dff94d3ca.JPG" rel=""><img alt="IMG_7002.JPG" class="ipsImage ipsImage_thumbnailed" data-fileid="23700" data-ratio="75.00" data-unique="68wo1e9bx" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/IMG_7002.thumb.JPG.1c6f9527ab23fa4272863abcf2246141.JPG"></a>
</p>

<p>
	and once all apps and policies are installed completely and successfully the drive is fully encrypted and the protectors are stored in the TPM along with a BEK key stored on the SYSTEM partition temporarily.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23703" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/encryption100percentcompleted.png.857fa4fe844fb2af18d53905826c7400.png" rel=""><img alt="encryption 100 percent completed.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23703" data-ratio="59.60" data-unique="62vpqfs0q" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/encryption100percentcompleted.thumb.png.2ca967f33885689662c2a63f6a609d2d.png"></a>
</p>

<p>
	At this point the technician can click on <strong>Reseal</strong> to seal the device for user enrollment (Part 2).
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23705" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/reseal.png.8b19052dfd71be545ab339f85bf813ec.png" rel=""><img alt="reseal.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23705" data-ratio="57.60" data-unique="mkdrx7b0m" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/reseal.thumb.png.14a719f9eaf999ac8f8a2c27192f34a7.png"></a>
</p>

<p>
	That 's it for this part, please join me in Part 2 where we'll add the next Win32 app which will do a bunch of actions including:
</p>

<ul>
	<li>
		create a scheduled task to run a script when WHFB setup is completed
	</li>
	<li>
		remove BEK protector
	</li>
	<li>
		add numerical password protector
	</li>
	<li>
		upload the key to Intune
	</li>
	<li>
		restart the computer with a shutdown message to the end user
	</li>
</ul>

<p>
	<span style="font-size:24px;">Troubleshooting</span>
</p>

<p>
	The Win32 app used in this part logs to C:\ProgramData\windowsnoob\WhiteGlove\<strong>win.ap.enable.bitlocker.during.whiteglove.log</strong>
</p>

<p>
	The contents of which are shown below from a working WhiteGlove deployment, please use this as a reference to compare your log file.
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_1556_7" style=""><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Starting</span><span class="pln"> script</span><span class="pun">:</span><span class="pln"> </span><span class="str">'win.ap.enable.bitlocker.during.whiteglove'</span><span class="pln"> version</span><span class="pun">:</span><span class="pln"> </span><span class="str">'0.11'</span><span class="pun">...</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> checking the current bitlocker encryption status
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Current</span><span class="pln"> </span><span class="typ">Bitlocker</span><span class="pln"> </span><span class="typ">Status</span><span class="pun">:</span><span class="pln"> </span><span class="typ">FullyDecrypted</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">None</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Fully</span><span class="pln"> decrypted</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">no</span><span class="pln"> need to decrypt
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> starting TPM section
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> TPM chip </span><span class="kwd">is</span><span class="pln"> currently owned</span><span class="pun">,</span><span class="pln"> will </span><span class="kwd">not</span><span class="pln"> attempt to take ownership
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> attempting to assign drive letter to the SYSTEM partition
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> starting </span><span class="typ">BitLocker</span><span class="pln"> </span><span class="typ">Encryption</span><span class="pln"> section
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> adding reg keys </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">BitLocker</span><span class="pln"> encryption settings
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> succeeded adding the reg key
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> adding AES</span><span class="pun">-</span><span class="pln">XTS256 reg key </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">BitLocker</span><span class="pln"> encryption settings
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> succeeded adding the reg key
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">33</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Enabling</span><span class="pln"> </span><span class="typ">BitLocker</span><span class="pun">,</span><span class="pln"> TPM </span><span class="typ">Protector</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> </span><span class="typ">Recovery</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="typ">Protector</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">10</span><span class="pln"> enabling bitlocker worked YAY</span><span class="pun">!!!!</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">16</span><span class="pln"> </span><span class="typ">Current</span><span class="pln"> BL </span><span class="typ">Status</span><span class="pun">:</span><span class="pln"> C</span><span class="pun">:,</span><span class="pln"> </span><span class="typ">EncryptionInProgress</span><span class="pun">,</span><span class="pln"> </span><span class="typ">XtsAes256</span><span class="pun">,</span><span class="typ">Tpm</span><span class="pln"> </span><span class="typ">ExternalKey</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">16</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">16</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">16</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">17</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">17</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">17</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">17</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">18</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">19</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">19</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'96'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">19</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">19</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">19</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">20</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">20</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">20</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">20</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">21</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">21</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">21</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">21</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">21</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">23</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">23</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">23</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">23</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">24</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">24</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">24</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">24</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">24</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">25</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">25</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">25</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">25</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">26</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">26</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">26</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">26</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">26</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">27</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">27</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">27</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">27</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">28</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">28</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">28</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">28</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">29</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">29</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">29</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">29</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">29</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">30</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">30</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'97'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">30</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">30</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">31</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">31</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">31</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">31</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">31</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">32</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">32</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">32</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">32</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">33</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">33</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">33</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">33</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">34</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">34</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">34</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">34</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">35</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">35</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">35</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">35</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">35</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">36</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">36</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">36</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">36</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">36</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">37</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">37</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">37</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">37</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">38</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">38</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">38</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">38</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">39</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">39</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">39</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">39</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">39</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">40</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">40</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">40</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">40</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">40</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">41</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">41</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">41</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">41</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">41</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">42</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'98'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">42</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">42</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">42</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">42</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">43</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">43</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">43</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">43</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">44</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">44</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">44</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">44</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">44</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">45</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">45</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">45</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">45</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">45</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">46</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">47</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">48</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">50</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">50</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">50</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">50</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">51</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">52</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">52</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">52</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">52</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">52</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">53</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">53</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">53</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">53</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">54</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">54</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">54</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">54</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">54</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">55</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">55</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">55</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">55</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">55</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">56</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">56</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">56</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">56</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">56</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">57</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">57</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">57</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">57</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">57</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">58</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">58</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">58</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">58</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">59</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">59</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">59</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">59</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">34</span><span class="pun">:</span><span class="lit">59</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">00</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">00</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">00</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">00</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">01</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">01</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">01</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">01</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">01</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">02</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">02</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">02</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">02</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">03</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">03</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'99'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">03</span><span class="pln"> </span><span class="typ">Percentage</span><span class="pln"> </span><span class="typ">Encrypted</span><span class="pun">:</span><span class="pln"> </span><span class="str">'100'</span><span class="pun">%.</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">03</span><span class="pln"> </span><span class="typ">Current</span><span class="pln"> BL </span><span class="typ">Status</span><span class="pun">:</span><span class="pln"> C</span><span class="pun">:,</span><span class="pln"> </span><span class="typ">FullyEncrypted</span><span class="pun">,</span><span class="pln"> </span><span class="typ">XtsAes256</span><span class="pun">,</span><span class="typ">Tpm</span><span class="pln"> </span><span class="typ">ExternalKey</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">03</span><span class="pln"> removing drive letter assigned to the SYSTEM partition now</span><span class="pun">...</span><span class="pln">
</span><span class="lit">02</span><span class="pun">/</span><span class="lit">27</span><span class="pun">/</span><span class="lit">2023</span><span class="pln"> </span><span class="lit">04</span><span class="pun">:</span><span class="lit">35</span><span class="pun">:</span><span class="lit">04</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> drive </span><span class="kwd">is</span><span class="pln"> fully encrypted now </span><span class="pun">:-),</span><span class="pln"> we are exiting the script </span><span class="pun">!</span></pre>

<p>
	Once encryption during WhiteGlove is completed a reg key is created
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="23707" href="https://www.windows-noob.com/forums/uploads/monthly_2023_02/encryptedduringwhitegloveregkey.png.3a4390c603c0bf1719190d99c5dc6f48.png" rel=""><img alt="encrypted during whiteglove reg key.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23707" data-ratio="51.10" data-unique="pdvupl11h" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2023_02/encryptedduringwhitegloveregkey.thumb.png.96685a0f9d334f27f0a52266aa0f162e.png"></a>
</p>

<p>
	and <strong>a file is created</strong> called <strong>EncryptedDuringWhiteGlove.txt</strong> in C:\ProgramData\windowsnoob\WhiteGlove
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://www.windows-noob.com/forums/uploads/monthly_2023_12/wglogsafterenrollment.png.9834aeee623037e6427a9420ece8b496.png" data-fileid="24022" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="24022" data-ratio="52.50" data-unique="907sree1n" width="1000" alt="wg logs after enrollment.png" src="https://www.windows-noob.com/forums/uploads/monthly_2023_12/wglogsafterenrollment.thumb.png.5951b3f260d34ec88ad2db800be63ff5.png"></a>
</p>

<p>
	This file is used as the detection rule for this Win32 app meaning that encryption must be completed by the app to be detected.
</p>

<p>
	<span style="color:#e74c3c;"><strong>Note</strong>: This solution was originally tested and released for use on Windows 10 version 22H2, but it works just fine on Windows 11 version 22H2 or later. Do make sure that Automatic Bitlocker Encryption is disabled by the OEM (HP, Dell, Lenovo, etc) or disable it yourself using the following method:</span><br>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_6351_5" style=""><span class="pln">1. DISM mount your WIM image.
2. reg load HKLM\TEMP C:\mountpath\Windows\System32\config\SYSTEM
3. reg add HKLM\TEMP\CurrentControlSet\Control\BitLocker /v PreventDeviceEncryption /t REG_DWORD /d 1 /f
4. reg unload HKLM\TEMP
5. DISM commit your changes.</span></pre>

<p>
	<span style="font-size:24px;">Recommended reading</span>
</p>

<ul>
	<li>
		Windows Autopilot for pre-provisioned deployment (Public preview) - <a href="https://learn.microsoft.com/en-us/mem/autopilot/pre-provision" rel="external nofollow">https://learn.microsoft.com/en-us/mem/autopilot/pre-provision</a>
	</li>
	<li>
		3 things to know before deploying bitlocker with Intune - <a href="https://brookspeppin.com/2022/07/06/3-things-to-know-before-deploying-bitlocker-with-intune/" ipsnoembed="true" rel="external nofollow">https://brookspeppin.com/2022/07/06/3-things-to-know-before-deploying-bitlocker-with-intune/</a>
	</li>
	<li>
		Disabling Windows 11 <a href="https://www.elevenforum.com/t/how-to-prevent-automatic-drive-encryption-in-windows-11.13885/post-281978" rel="external nofollow">automatic encryption</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">23198</guid><pubDate>Mon, 27 Feb 2023 13:45:06 +0000</pubDate></item><item><title>Adding devices to an Azure AD group after Windows Autopilot is complete - part 2</title><link>https://www.windows-noob.com/forums/topic/21826-adding-devices-to-an-azure-ad-group-after-windows-autopilot-is-complete-part-2/</link><description><![CDATA[
<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	In <a href="https://www.windows-noob.com/forums/topic/21814-adding-devices-to-an-azure-ad-group-after-windows-autopilot-is-complete-part-1/" rel="">part 1</a> you learned how to use Azure functions and a http trigger to add a device to an Azure Ad security group. In this part you'll see how it all fits together on the client side after Autopilot is complete.
</p>

<p>
	<span style="font-size:24px;">Step 1. Get the scripts</span>
</p>

<p>
	Download the <strong>client side </strong>scripts here. Please <strong>read the note</strong> before trying.
</p>

<p>
	<span style="color:#ff0000;"><strong>Note</strong>: To download the files here, please make sure <strong>you are logged on</strong> to this site otherwise you'll get an error.</span>
</p>

<ul>
<li>
		Download the following zip file here: <a class="ipsAttachLink" contenteditable="false" data-fileid="22006" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=22006" data-fileext="zip" rel="">temp.zip</a>
	</li>
</ul>
<p>
	<span style="font-size:24px;">Step 2. Extract the files </span>
</p>

<p>
	Extract the files to <strong>C:\temp</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22005" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/8642651_extracttotemp.png.ec657cbbebb3e0890f3caf59972bec63.png" rel=""><img alt="extract to temp.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22005" data-ratio="46.80" data-unique="5k2jt5i4m" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/949603248_extracttotemp.thumb.png.f54d875d819271b0af8cea546152a28d.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 3. Edit AddDeviceToAzureAdGroup.ps1</span>
</p>

<p>
	Using Windows PowerShell ISE or notepad, open <strong>AddDeviceToAzureAdGroup.ps1</strong>, you need to edit the following two lines.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21986" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1672342084_editthefollowingtwolines.png.24f40afcde2b47e3c81e45349334a6ab.png" rel=""><img alt="edit the following two lines.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21986" data-ratio="40.20" data-unique="b3dtc25jl" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1962461924_editthefollowingtwolines.thumb.png.e1d30af2d889de170b9be3b5014c1ea4.png"></a>
</p>

<p>
	Replace <strong>$company</strong> with your own company name, and for <strong>$URL</strong> you will need to login to your Azure resource group created in part 1 and copy the HttpTrigger1 url by clicking on <strong>Get Function URL</strong> and copying the url as shown below.
</p>

<p>
	<img alt="Get function URL.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21987" data-ratio="19.13" data-unique="iv1id32mk" width="873" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1621682231_GetfunctionURL.png.e4b856878307ee5712f19b3dba62569e.png"></p>

<p>
	 
</p>

<p>
	<span style="color:#ff0000;">Note: If you don't do this properly then it won't work !</span>
</p>

<p>
	Paste in the URL you copied from your <strong>HttpTrigger</strong> and append <strong>&amp;deviceID=</strong> on the end as shown here.
</p>

<p>
	<img alt="URL.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21988" data-ratio="2.70" data-unique="vz16lkf3j" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/URL.png.68671c81c703f7a2ee89d9101521c897.png"></p>

<p>
	<span style="font-size:24px;">Step 4. Encode the scripts</span>
</p>

<p>
	<span style="font-size:14px;">Open the <strong>EncodeScripts.ps1</strong> script and run it. It will generate new encoded copies of the two scripts that will become embedded in the </span>
</p>

<p>
	<img alt="encode the scripts.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="21991" data-ratio="63.43" data-unique="1g8k1uco2" width="659" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1510586216_encodethescripts.PNG.0df08e87ceae8a596c7fd98abf826580.PNG"></p>

<p>
	<span style="font-size:24px;">Step 5. Edit AddDeviceToAzureAdGroup_CreateScheduledTask.ps1</span>
</p>

<p>
	Open <strong>AddDeviceToAzureAdGroup_CreateScheduledTask.ps1</strong> and scroll down to the <strong>$Base64_1</strong> line.
</p>

<p>
	In notepad, open <strong>C:\temp\encoded1.txt</strong>, press <strong>CTRL+A</strong> and <strong>CTRL+C </strong>to copy everything in that file. Back in the PowerShell script, paste the copied content into the <strong>$Base64_1</strong> <span>variable in between the "" as shown below.</span>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21992" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1063974322_copyeverythingfromencoded1tothefirstvariable.png.74f5d19f850df2d3273bc9a8ba1e2066.png" rel=""><img alt="copy everything from encoded1 to the first variable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21992" data-ratio="37.50" data-unique="o3bnefnio" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1524674350_copyeverythingfromencoded1tothefirstvariable.thumb.png.ed1371d9aa9f413ed43d0a30fe586d80.png"></a>
</p>

<p>
	repeat this exercise for the <strong>$Base64_2</strong> variable but use the <strong>C:\temp\encoded2.txt</strong> file contents for that variable.
</p>

<p>
	<span style="color:#ff0000;">Note: You have to repeat this process any time you edit either of the following two scripts.</span>
</p>

<ul>
<li>
		<span style="font-size:14px;">AddDeviceToAzureAdGroup.ps1</span>
	</li>
	<li>
		<span style="font-size:14px;">AddDeviceToAzureAdGroup.vbs</span>
	</li>
</ul>
<p>
	After my edits it looks like this, your encoded variables will most likely have different values.<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21993" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1569000189_afteraddingtheencodedchanges.png.ca6a4c2367d395ba93b51204e52375ab.png" rel=""><img alt="after adding the encoded changes.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21993" data-ratio="9.50" data-unique="qn01u09px" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1405648748_afteraddingtheencodedchanges.thumb.png.bdedf2076f41bf72c9e97824ca4f1a38.png"></a>
</p>

<p>
	Save the file.
</p>

<p>
	<span style="font-size:24px;">Step 6. Add the PowerShell script to Intune</span>
</p>

<p>
	Create a new deployment to your Autopilot Users group using the  <strong>AddDeviceToAzureAdGroup_CreateScheduledTask.ps1</strong> PowerShell script.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21995" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1468009769_addscripttointune.png.da71b77b3b210bbc997171498166434c.png" rel=""><img alt="add script to intune.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21995" data-ratio="57.10" data-unique="bj2psle8p" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/550486195_addscripttointune.thumb.png.54c35bc4e1512fee3d4bbf1cd37b7535.png"></a>
</p>

<p>
	use the following settings<img alt="following settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21996" data-ratio="31.64" data-unique="zeecczjbj" width="806" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/612991586_followingsettings.png.f448023d5c6e63dcdcf2f6358b07eec2.png"></p>

<p>
	Deploy it to your <strong>Autopilot Users</strong> group
</p>

<p>
	<img alt="autopilot users.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21997" data-ratio="27.17" data-unique="shn1tionh" width="736" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1775385652_autopilotusers.png.8374a4236afce0d14010ddb9c5155a03.png"></p>

<p>
	<span style="font-size:24px;">Step 7. Verify the end result</span>
</p>

<p>
	Launch Autopilot
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21998" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1381039898_startautopilot.png.49084035acbee80463ad88cbf3d0ca3b.png" rel=""><img alt="start autopilot.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21998" data-ratio="75.00" data-unique="6k60ajgv3" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/278699209_startautopilot.thumb.png.4a992dfb3f1c8602cd6c4e1a1c9968e7.png"></a>
</p>

<p>
	After it's done, you'll login to the desktop. If you check scheduled tasks you should see this task is scheduled to run <strong>approx 15 minutes</strong> after you've logged on, if you see a different behavior then please modify the setting on line 79 of  the <strong>AddDeviceToAzureAdGroup_CreateScheduledTask.ps1</strong> script.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21999" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1974005367_scheduledtask.png.c6531c48dfc8d3957db3ae533d01c440.png" rel=""><img alt="scheduled task.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21999" data-ratio="75.00" data-unique="pjcyvmppj" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/101705837_scheduledtask.thumb.png.a4bcbd8d55a18eca742cf650b22f7099.png"></a>
</p>

<p>
	The task that created that scheduled task extracted files to the users temp folder.
</p>

<p>
	<img alt="extracted files.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22000" data-ratio="36.04" data-unique="peapk3234" width="788" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1562213746_extractedfiles.png.ce61e8d0b4f0f878df23acaefef02f9f.png"></p>

<p>
	 
</p>

<p>
	As the task hasn't run yet we don't have a log file for adding the device to the azure ad group yet. The scheduled task log looks something like this however.
</p>

<p>
	<img alt="scheduled task log file.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22001" data-ratio="44.04" data-unique="afeq8dpgg" width="872" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1182759696_scheduledtasklogfile.png.7b42f901495807e1a4d40698a2f9df6f.png"></p>

<p>
	After the scheduled task has run you'll have a new log file to look at called <span style="font-size:14px;"><strong>AddDeviceToAzureAdGroup.log</strong> available in the logged on users temp folder.</span>
</p>

<p>
	<span style="font-size:14px;">The log file is very detailed and will show the actions of getting the deviceID, detecting the Group Name and the success of adding the device to the Azure Ad group. Below you can see that it has confirmed the addition of the device to the group.</span>
</p>

<p>
	<img alt="adddevicetoazureadgroup log file.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22002" data-ratio="90.88" data-unique="x3p9t1dm2" width="800" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1448880351_adddevicetoazureadgrouplogfile.png.09053f207cd64bc12ea37484919e77db.png"></p>

<p>
	At which point you can check the group in the MEM portal. And there's your device <span><span class="ipsEmoji">?</span></span>
</p>

<p>
	<img alt="job done.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22003" data-ratio="37.74" data-unique="2lehobowb" width="877" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/735677830_jobdone.png.49d8e5a0cda71fc83ac290f088d90ae3.png"></p>

<p>
	The script also creates registry keys so that you can see when it added the device, to which group and using which deviceID.
</p>

<p>
	<img alt="autopilot completed in registry.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22004" data-ratio="68.97" data-unique="oc2w7eq2i" width="754" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/2068961612_autopilotcompletedinregistry.png.a295440cd72dba1bd32c07dc74559669.png"></p>

<p>
	Job done !
</p>

<p>
	I hope you found this useful, if you do, please give me feedback.
</p>

<p>
	cheers
</p>

<p>
	niall
</p>
]]></description><guid isPermaLink="false">21826</guid><pubDate>Fri, 18 Dec 2020 19:31:46 +0000</pubDate></item><item><title>Adding devices to an Azure AD group after Windows Autopilot is complete - part 1</title><link>https://www.windows-noob.com/forums/topic/21814-adding-devices-to-an-azure-ad-group-after-windows-autopilot-is-complete-part-1/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	I've come across various problems during Windows Autopilot <a href="https://techcommunity.microsoft.com/t5/microsoft-intune/wifi-disconnects-after-intune-enrollment/m-p/324095" rel="external nofollow">causing OOBE to fail</a> that could be solved if only we could decide the order of when things were installed, and to resolve this in a nice way we wanted to dynamically populate an Azure AD group that could be targeted with a device configuration profile. That would mean that we could target sensitive policies to devices after enrollment instead of during enrollment allowing for a smoother, less error prone experience.
</p>

<p>
	Being able to apply a profile <strong><em>after</em></strong> Autopilot is finished requires knowing when Autopilot is actually complete, and I touched upon that subject in a previous blog post <a href="https://www.windows-noob.com/forums/topic/21790-displaying-a-welcome-page-after-windows-autopilot-completes/?tab=comments#comment-71016" rel="">here</a>. To expand upon that, we can run a scheduled task on login which runs a PowerShell script which in turn, only delivers the payload if certain things are in place such as.
</p>

<ul>
	<li>
		C:\ProgramData\Microsoft\IntuneManagementExtension  was created within the last X hours
	</li>
	<li>
		The logged on user is not defaultuser0
	</li>
</ul>

<p>
	We could do this using a PowerShell script which runs as a scheduled task after login but that would require storing sensitive credentials on the client.
</p>

<p>
	This blog post will show you the necessary steps taken to get to a stage where you can <strong>add devices to an Azure AD group</strong> using Azure <strong><a href="https://azure.microsoft.com/en-us/blog/introducing-azure-functions/" rel="external nofollow">Functions</a></strong> and Graph, and that is interesting because in conjunction with an <strong>app registration</strong> allows you to embed <strong>certificates or secrets</strong> within the function and thereby bypass the need for storing credentials in your PowerShell script which runs on the client.
</p>

<p>
	<span style="color:#c0392b;"><strong>Note</strong>: In this blog, the app uses http triggers that use certificate secrets, this is fine in a lab, but in production you should use <strong>Azure Key Vault </strong>instead as it's more secure. If you'd like to understand how to set that up please read my blog post about </span><a href="https://www.windows-noob.com/forums/topic/23483-getting-started-with-azure-key-vault/" rel=""><span style="color:#c0392b;">Azure Key Vault here</span></a><span style="color:#c0392b;">.</span>
</p>

<p>
	There are other ways of doing this, but this is kind of neat. You need to do the following steps.
</p>

<ul>
	<li>
		Create a resource group
	</li>
	<li>
		Create an app registration
	</li>
	<li>
		Create a client secret
	</li>
	<li>
		Create a function app
	</li>
	<li>
		Add a HTTP trigger
	</li>
	<li>
		Get the application ID
	</li>
	<li>
		Create an azure ad group
	</li>
	<li>
		Add missing details
	</li>
	<li>
		Configure API permissions
	</li>
	<li>
		Test adding a client
	</li>
</ul>

<p>
	So now you have an idea of what this blog post is about, let's get started.
</p>

<p>
	<span style="color:#c0392b;">Note: I've released an updated version of this concept which includes checking for device compliance </span><a href="https://www.windows-noob.com/forums/topic/22072-adding-devices-or-users-to-an-azure-ad-group-after-windows-autopilot-is-complete-but-only-when-the-device-is-marked-as-compliant/" rel=""><span style="color:#c0392b;">here</span></a><span style="color:#c0392b;">.</span>
</p>

<p>
	<span style="font-size:24px;">Step 1. Create a resource group </span>
</p>

<p>
	In Azure Active Directory, create an Azure Resource Group. To do that click on <strong>Create a Resource</strong> in <a href="https://portal.azure.com" rel="external nofollow">https://portal.azure.com</a><span ipsnoautolink="true">.  </span>In the page that appears, search for <strong>Resource Group</strong>. Select it and click on <strong>Create</strong>. Next, give it a useful name like <strong>Graph_Functions</strong>, and select the region applicable to you.
</p>

<p>
	<img alt="create a resource group.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21952" data-ratio="71.75" data-unique="d66vcq5lu" width="839" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1368971758_createaresourcegroup.png.7964e6890c271cacb04432c0dc57e26d.png">
</p>

<p>
	And click on <strong>Review + create</strong> and after being presented with the summary, click <strong>Create</strong>.
</p>

<p>
	<span style="font-size:24px;">Step 2. Create an app registration</span>
</p>

<p>
	In Azure Active Directory, create an create an APP Registration called <strong>graph_functions </strong>by clicking on <strong>App registrations</strong> in the left pane and clicking on <strong>+ New registration</strong>.
</p>

<p>
	<img alt="create app registration.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21954" data-ratio="97.14" data-unique="hp1ql6sib" width="630" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/987164936_createappregistration.png.b6c3ba87a5f04fc4fc5a5914778a227e.png">
</p>

<p>
	fill in the user-facing display name and then click on <strong>Register</strong>.
</p>

<p>
	 
</p>

<p>
	<img alt="app registration.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21955" data-ratio="65.42" data-unique="1egvf4iyz" width="853" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1047532862_appregistration.png.00ee84a8e3e9052d439952c8a3fc2904.png">
</p>

<p>
	The app registration is created.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21956" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/479393070_appregistrationiscomplete.png.e88c0e2ab35aa68090e11ff675049bfc.png" rel=""><img alt="app registration is complete.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21956" data-ratio="23.90" data-unique="c2kf88c8d" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1532208450_appregistrationiscomplete.thumb.png.6f9213fcf67df2ecf500dc92d38a11bb.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 3. Create a client secret</span>
</p>

<p>
	In the Graph_Function app registration you just created, click on <strong>Certificates &amp; Secrets</strong>, choose the option to create a <strong>+ New client secret</strong>
</p>

<p>
	<img alt="new client secret.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21957" data-ratio="105.56" data-unique="iaev45yyw" width="522" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1768746664_newclientsecret.png.643b75bbaa4ba47bd2a2d4f2bd9afc27.png">
</p>

<p>
	Give it a name like <strong>graph_function_secret</strong>
</p>

<p>
	<img alt="graph_function_secret.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21958" data-ratio="111.20" data-unique="t5w06wny3" width="241" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/graph_function_secret.png.b49d0f1a2ae00240ab0b57fa4f2941df.png">
</p>

<p>
	Click <strong>Add</strong>
</p>

<p>
	After adding the client secret make sure to <strong>copy the secret</strong> and keep it safe.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21959" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1657014422_copytheclientsecret.png.ce2b2d5f760f4bd0f3987b545dc667a8.png" rel=""><img alt="copy the client secret.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21959" data-ratio="20.90" data-unique="kqce73pwh" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1218013124_copytheclientsecret.thumb.png.d2c505004f8e9842313cd7989ade1db2.png"></a><br>
	copy the secret <strong>value</strong> and <strong>id</strong>, you will need them later.
</p>

<p>
	<span style="font-size:24px;">Step 4. Create a function app</span>
</p>

<p>
	Next, select your previously created resource group called Graph_Functions and create a <strong>function app</strong> in the <strong>graph_functions</strong> resource group by clicking on <strong>+Add</strong>
</p>

<p>
	<img alt="add function app.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21960" data-ratio="63.15" data-unique="6hqxy3ud7" width="730" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1518957411_addfunctionapp.png.69eb96952b5e5fbeda11afc5647ca1aa.png">
</p>

<p>
	 
</p>

<p>
	Search for <strong>Function App</strong> and click <strong>Create</strong>. A wizard will appear, fill in your choices and select <strong>PowerShell core</strong> and your region.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21961" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1586449572_createfunctionappwizard.png.d5b40cb1606dbaf8618f1bbf9b800211.png" rel=""><img alt="create function app wizard.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21961" data-ratio="105.93" data-unique="6q6rotixf" width="708" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/473583224_createfunctionappwizard.thumb.png.843321e7a6a738a10035084465e5c3a1.png"></a>
</p>

<p>
	 
</p>

<p>
	Create a new storage group or let the wizard create it's own, then click <strong>Review + Create</strong>. If it generates an error click on the <strong>error details</strong>, most likely the storage group name you tried to create is already taken. If so, pick another name.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21963" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/223018991_storageaccountforfunction.png.71c1ea6a5a54ce85e0a002681b1a7f9f.png" rel=""><img alt="storage account for function.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21963" data-ratio="110.13" data-unique="5ey3oikmt" width="681" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/396590983_storageaccountforfunction.thumb.png.24581bd75741c26e4a514c7e60680398.png"></a>
</p>

<p>
	 
</p>

<p>
	Finally, click on <strong>Create</strong> to create the function app.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21964" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1234691403_createthefunctionapp.png.cb3f19f1ba942a40c275ba036aed8b27.png" rel=""><img alt="create the function app.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21964" data-ratio="140.98" data-unique="3cg0ec58u" width="532" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/798100321_createthefunctionapp.thumb.png.e64958ebcaf5717bcffe81b42cb2ca65.png"></a>
</p>

<p>
	<br>
	<span style="font-size:24px;">Step 5. add a HTTP trigger</span>
</p>

<p>
	<span style="font-size:14px;">Select the <strong>function app</strong> created above and click on <strong>functions</strong> in the left pane. In the ribbon click on<strong> + Add</strong>.</span>
</p>

<p>
	<img alt="functions add.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21965" data-ratio="68.31" data-unique="w1jkx2pec" width="773" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1339662999_functionsadd.png.1c6f4a2075b91785d4478a095731c20d.png">
</p>

<p>
	 
</p>

<p>
	Select <strong>HTTP trigger</strong> and click on <strong>Add</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21966" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1849492623_httptriggeradd.png.552a53a788fbcef640732663f8bd63af.png" rel=""><img alt="http trigger add.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21966" data-ratio="150.00" data-unique="32rlfdgxd" width="500" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1977332212_httptriggeradd.thumb.png.638e3031bfdd784a542070740e7d8c48.png"></a>
</p>

<p>
	Select <strong>Code + test</strong> and paste in the code below then save the results<br>
	 
</p>

<pre class="ipsCode" id="ips_uid_5160_5"># use this code in a http trigger as part of a function app
# for more details see https://www.windows-noob.com/forums/topic/21814-adding-devices-to-an-azure-ad-group-after-windows-autopilot-is-complete-part-1/
# Niall Brady, windows-noob.com 2020/12/18 v 0.3


using namespace System.Net
# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."
# Interact with query parameters or the body of the request.

$deviceId = $Request.Query.deviceId

if (-not $deviceId) { 
                    $deviceId = $Request.Body.deviceId
                }
# define the following variables
$ApplicationID =    "" # this is the id of the app you created in app registrations
$TenantDomainName = "" # your tenant name, eg: windowsnoob.com
$AccessSecret =     "" # this is the secret of the app you create in app registrations
$GroupID = ""          # this is the ObjectID of the Azure AD group that we want to add devices to


$Body = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
client_Id = $ApplicationID
Client_Secret = $AccessSecret
}
# make initial connection to Graph
$ConnectGraph = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantDomainName/oauth2/v2.0/token" -Method POST -Body $Body
#get the token
$token = $ConnectGraph.access_token
# to improve logging...
$a = Get-Date
$body = " `n"
$body = $body + "$a Starting Azure function...`n"
$body = $body + "$a Connected to tenant: $TenantDomainName.`n"
# now do things...

if ($deviceId) {
    $body = $body + "$a You supplied deviceId: '$deviceId'" + ".`n"
    # deviceID should be supplied to the function via the function url, 
    # if you want to hard code it for testing un rem next line and supply the correct deviceId
        #$deviceID = "3a4f4d9d-c648-4ca2-966f-6c6c10acff35"
        #$InputDevice = "MININT-U7CQUG7"
        #$Devices = Invoke-RestMethod -Method Get -uri "https://graph.microsoft.com/v1.0/devices?`$filter=startswith(displayName,'$InputDevice')" -Headers @{Authorization = "Bearer $token"} | Select-Object -ExpandProperty Value | %{    
    $Group = Invoke-RestMethod -Method Get        -uri "https://graph.microsoft.com/v1.0/groups?`$filter=Id eq '$GroupId'" -Headers @{Authorization = "Bearer $token"} | Select-Object -ExpandProperty Value
    $GroupName = $Group.displayName
    $body = $body +"$a Group.displayName: '$GroupName'" + ".`n"
    $GroupMembers = Invoke-RestMethod -Method Get -uri "https://graph.microsoft.com/v1.0/groups/$GroupID/members" -Headers @{Authorization = "Bearer $token"} | Select-Object -ExpandProperty Value
    $AddDevice = Invoke-RestMethod -Method Get -uri "https://graph.microsoft.com/v1.0/devices?`$filter=deviceId eq '$deviceId'" -Headers @{Authorization = "Bearer $token"} | Select-Object -ExpandProperty Value | %{ 
   
   if ($GroupMembers.ID -contains $_.id) {
       Write-Host -ForegroundColor Yellow "$($_.DisplayName) ($($_.ID)) is in the group" 
        $body = $body + "$a $($_.DisplayName) ($($_.ID)) is already in the '$GroupName' group, nothing to do.`n"
    } else {
        Write-Host -ForegroundColor Green "Adding $($_.DisplayName) ($($_.ID)) to the group"
        $body = $body +  "$a Adding $($_.DisplayName) ($($_.ID)) to the group with ObjectID $GroupID.`n"
        $BodyContent = @{
            "@odata.id"="https://graph.microsoft.com/v1.0/devices/$($_.id)"
        } | ConvertTo-Json
        Invoke-RestMethod -Method POST -uri "https://graph.microsoft.com/v1.0/groups/$GroupID/members/`$ref" -Headers @{Authorization = "Bearer $token"; 'Content-Type' = 'application/json'} -Body $BodyContent
    }
}
$body = $body +  "$a Exiting Azure function."
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
 StatusCode = [HttpStatusCode]::OK
 Body = $body
})

</pre>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 6. Get the application ID</span>
</p>

<p>
	Go back to <strong>app registrations</strong>, select the app called <strong>graph_functions</strong> and copy this field.
</p>

<ul>
	<li>
		Application (client) ID:
	</li>
</ul>

<p>
	<img alt="copy application iud.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21968" data-ratio="60.43" data-unique="96ahjc9gf" width="609" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1496247004_copyapplicationiud.png.9b167946db906aee116087f13e179a4a.png">
</p>

<p>
	copy the Application (client) ID somewhere.
</p>

<p>
	<span style="font-size:24px;">Step 7. Create an azure ad group</span>
</p>

<p>
	In Microsoft Endpoint Manager create an azure ad group called <strong>Autopilot Completed</strong>
</p>

<p>
	<img alt="autopilot completed.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21974" data-ratio="77.00" data-unique="4smrr4m8u" width="700" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/301785752_autopilotcompleted.png.57d7965459e151a877a0f2c5624d8c7f.png">
</p>

<p>
	Take note and copy the <strong>Object ID</strong> of this Azure Ad group.
</p>

<p>
	<img alt="object id.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21975" data-ratio="69.88" data-unique="20e28b249" width="953" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1486804639_objectid.png.0f42825a2e4ddc8d9e6a70bf3fbccc25.png">
</p>

<p>
	<span style="font-size:24px;">Step 8. Add missing details</span>
</p>

<p>
	Now that you have the values you need (remember you copied the access secret earlier ?), go back into your <strong>function app</strong> and <strong>edit the code</strong>, fill in the values below for the following variables
</p>

<ul>
	<li>
		$ApplicationID
	</li>
	<li>
		$TenantDomainName
	</li>
	<li>
		$AccessSecret
	</li>
	<li>
		$GroupID
	</li>
</ul>

<p>
	like I've done here... but obviously use your own values.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21981" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/12101464_4detailsadded.png.b526b9c084d4cc0e1cc5a0524fe49612.png" rel=""><img alt="4 details added.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21981" data-ratio="11.60" data-unique="ps18scgln" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1874573249_4detailsadded.thumb.png.351d44806456ad9ed263184cbe4be930.png"></a>
</p>

<p>
	<span ipsnoautolink="true"><strong>Save</strong> the code after making your edits.</span>
</p>

<p>
	<br>
	<span style="font-size:24px;">Step 9. configure API permissions</span>
</p>

<p>
	Next you need to configure API Permissions for the app registration, don't forget to 'grant admin consent after doing so', please select the following permissions from those available.
</p>

<p>
	Click <strong>+ Add a permission</strong>, click <strong>Microsoft Graph</strong>, select <strong>Application permissions</strong>
</p>

<p>
	<img alt="request api permissions.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21971" data-ratio="67.67" data-unique="9o8a30snm" width="699" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1306717381_requestapipermissions.png.5bf094ec6a45bf53fb849d8386740580.png">
</p>

<ul>
	<li>
		Device.Read.All                     Application                Read all devices                        Yes                Granted for windowsnoob.com
	</li>
	<li>
		Group.ReadWrite.All             Application                Read and write all groups        Yes                Granted for windowsnoob.com
	</li>
</ul>

<p>
	In your lab environment it's ok to Grant admin consent, in Production, think more carefully about how you want to approach it.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21972" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/322434842_grantadminconsent.png.ca681830bc83c6b409dd35a727dee206.png" rel=""><img alt="grant admin consent.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21972" data-ratio="28.90" data-unique="jc5927wa0" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1835601605_grantadminconsent.thumb.png.08ce7e27ed0b1298912c1b32359dbdb7.png"></a>
</p>

<p>
	 
</p>

<p lang="en-US" style="margin:0in;font-family:Calibri;font-size:11pt">
	and once done they'll look like so.
</p>

<p lang="en-US" style="margin:0in;font-family:Calibri;font-size:11pt">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21973" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1578693059_apipermissionsset.png.c34bcc7b3d3149a8d4a18b50dfffc66f.png" rel=""><img alt="api permissions set.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21973" data-ratio="13.60" data-unique="hj61mnsll" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/2092896327_apipermissionsset.thumb.png.23d8686fd38f46965c7a2cd698d56df3.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 10. Test adding a client</span>
</p>

<p>
	Now you are ready to test this. On a client, open a cmd prompt and type <strong>dsregcmd /status</strong>
</p>

<p>
	look for the <strong>deviceID</strong> value highlighted below and copy it.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21977" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/671558978_deviceidonclient.png.2de83b4678aa9e598d7839259eda4503.png" rel=""><img alt="deviceid on client.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21977" data-ratio="75.00" data-unique="s5v2z40nb" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/434347550_deviceidonclient.thumb.png.0afeebf8487886525456df6bceaff475.png"></a>
</p>

<p>
	Copy that value and on your http trigger function, use the following in your test window. Replace the deviceID listed below with one from your device.
</p>

<div style="color: #000000;background-color: #fffffe;font-family: Consolas, 'Courier New', monospace;font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;">
	<div>
		<pre class="ipsCode" id="ips_uid_6704_5">{
"deviceID": "f6331344-f625-4259-87e7-73b62f6dbc4a"
}</pre>
	</div>

	<div>
		<img alt="device id added to input.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21978" data-ratio="140.38" data-unique="3qb8u8ang" width="520" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/362310453_deviceidaddedtoinput.png.37dc66202bdd0d01c2ea31b8cf748963.png">
	</div>
</div>

<p>
	Click Run and watch your function do it's thing <span><span class="ipsEmoji">?</span></span>
</p>

<p>
	<span>If you followed my guide exactly you'll see something like this.</span>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21983" href="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1583252933_codetestedok.png.e79c2025b6f6efd128193cfe8cb6b68a.png" rel=""><img alt="code tested ok.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21983" data-ratio="56.50" data-unique="nis6j752z" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1128202639_codetestedok.thumb.png.90e4edfa9f49df6be728aa38f13be617.png"></a>
</p>

<p>
	And after a quick look in the members of your Azure Ad group, guess what, your client computer is present !
</p>

<p>
	<img alt="refresh to see the client computer.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21980" data-ratio="44.70" data-unique="3hi56o4vd" width="736" src="https://www.windows-noob.com/forums/uploads/monthly_2020_12/1499731634_refreshtoseetheclientcomputer.png.9999a6d6b5dd33bd54fe9f82f02e26fa.png">
</p>

<p>
	Awesome ! job done <span><span><span><img alt=":)" data-emoticon="true" height="20" src="https://www.windows-noob.com/forums/uploads/emoticons/default_smile.png" srcset="https://www.windows-noob.com/forums/uploads/emoticons/smile@2x.png 2x" title=":)" width="20"><span><img alt=":)" data-emoticon="true" height="20" src="https://www.windows-noob.com/forums/uploads/emoticons/default_smile.png" srcset="https://www.windows-noob.com/forums/uploads/emoticons/smile@2x.png 2x" title=":)" width="20"><span><span><img alt=":)" data-emoticon="true" height="20" src="https://www.windows-noob.com/forums/uploads/emoticons/default_smile.png" srcset="https://www.windows-noob.com/forums/uploads/emoticons/smile@2x.png 2x" title=":)" width="20"></span></span></span></span></span></span>
</p>

<p>
	<span style="font-size:24px;">Useful links</span>
</p>

<ul>
	<li>
		<span><span><span><span><span><span>Graph explorer - </span></span></span></span></span></span><a href="https://developer.microsoft.com/en-us/graph/graph-explorer#" ipsnoembed="true" rel="external nofollow">https://developer.microsoft.com/en-us/graph/graph-explorer#</a>
	</li>
	<li>
		Powershell modules in Azure functions - <a href="https://tech.nicolonsky.ch/azure-functions-powershell-modules/" ipsnoembed="true" rel="external nofollow">https://tech.nicolonsky.ch/azure-functions-powershell-modules/</a>
	</li>
	<li>
		Create first function in visual studio code - <a href="https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-powershell" ipsnoembed="true" rel="external nofollow">https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-powershell</a>
	</li>
	<li>
		Add devices to an Azure ad group using Graph- <a href="https://euc365.com/add-devices-to-an-azure-ad-group-using-the-microsoft-graph-api/" ipsnoembed="true" rel="external nofollow">https://euc365.com/add-devices-to-an-azure-ad-group-using-the-microsoft-graph-api/</a>
	</li>
	<li>
		Using Graph in an Azure  function - <a href="https://techcommunity.microsoft.com/t5/windows-dev-appconsult/using-microsoft-graph-in-an-azure-function/ba-p/317434" ipsnoembed="true" rel="external nofollow">https://techcommunity.microsoft.com/t5/windows-dev-appconsult/using-microsoft-graph-in-an-azure-function/ba-p/317434</a>
	</li>
</ul>

<p>
	That's it for this part, please join me in <a href="https://www.windows-noob.com/forums/topic/21826-adding-devices-to-an-azure-ad-group-after-windows-autopilot-is-complete-part-2/" rel="">Part 2</a> where we'll look into scripting things in an automated way on the client.
</p>

<p>
	cheers
</p>

<p>
	niall
</p>
]]></description><guid isPermaLink="false">21814</guid><pubDate>Wed, 16 Dec 2020 16:53:22 +0000</pubDate></item><item><title>Prompting standard users to confirm or change Regional, Time Zone and Country settings after Windows Autopilot enrollment is complete</title><link>https://www.windows-noob.com/forums/topic/22682-prompting-standard-users-to-confirm-or-change-regional-time-zone-and-country-settings-after-windows-autopilot-enrollment-is-complete/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	When users complete Windows Autopilot Out of Box Experience (OOBE), they can be asked to confirm <strong>Country</strong> and <strong>Keyboard</strong> settings, based on what is configured in the following <strong>Windows Autopilot Deployment Profile</strong> settings. Below is the Windows Autopilot deployment profile settings used for this blog post, notice how the <strong>User account type</strong> is set to<strong> Standard</strong>. Notice also that the <strong>Privacy settings</strong> setting is set to <strong>Hide</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22954" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/392391337_WindowsAutopilotdeploymentprofilesettings.png.483c81d2e648d8acb750c7de73013cf6.png" rel=""><img alt="Windows Autopilot deployment profile settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22954" data-ratio="95.66" data-unique="3ncyzutr8" width="784" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/1713955937_WindowsAutopilotdeploymentprofilesettings.thumb.png.5ba5f24ae9ee63b64abad09ba89c8692.png"></a>
</p>

<p>
	Your users will most likely be used to seeing the region related screens during OOBE, for example:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22955" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/200242332_letsstartwiththisregion.png.2004d09f0d882d484e0bd2f5d89d7674.png" rel=""><img alt="lets start with this region.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22955" data-ratio="75.00" data-unique="8om149rcc" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/1292335272_letsstartwiththisregion.thumb.png.87a0a41c87dbd79f4dd2b76c181ee309.png"></a>
</p>

<p>
	However if you <strong>disable Privacy Settings</strong> in the Windows Autopilot Deployment profile, even though you might allow users to select <strong>Country</strong> and <strong>Keyboard</strong> settings, <a href="https://techcommunity.microsoft.com/t5/microsoft-endpoint-manager-ama/autopilot-time-zone-configuration-and-policy-settings/m-p/1436616" rel="external nofollow">Windows Autopilot still sets the Time Zone to <strong>Pacific Standard Time</strong></a><strong>.</strong>
</p>

<p>
	You can confirm this behavior by pressing left shift+F10 and typing PowerShell then <strong>Get-TimeZone</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22956" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/Get-TimeZone.png.ef18f688f6ab050bc276dbf9416e1dbc.png" rel=""><img alt="Get-TimeZone.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22956" data-ratio="75.00" data-unique="m8ybeszln" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/Get-TimeZone.thumb.png.186c6e9d31217479d026bf511b4d3ca8.png"></a>
</p>

<p>
	This Time Zone will apply regardless of what country the user selects.
</p>

<p>
	Even if your users are tech-savvy enough to find out where in Windows Settings they need to change these region based settings, if they are a standard user (which they should be in today's security conscious world), <strong>changing the timezone </strong>may leave them with<strong> incorrect time</strong> and <strong>incorrect regional format</strong> settings in the operating system.
</p>

<p>
	To fix this you could use Geo location and Azure services as per <a href="https://msendpointmgr.com/2020/05/20/automatically-set-time-zone-for-devices-provisioned-using-windows-autopilot/" rel="external nofollow">Nickolaj's post here</a>, provided of course that:
</p>

<ul><li>
		Your company allows Geo location
	</li>
	<li>
		Your company is not using any proxies or VPN's that mask the users actual location.
	</li>
</ul><p>
	This solution is not affected by either of these things, doesn't need local administrative permissions and does not require enabling privacy settings. This solution prompts the end user to confirm (or change) the detected settings, and then uses some back end magic to set everything in place including triggering a time sync.
</p>

<p>
	This method works even for <strong>standard (non administrator) users</strong>.
</p>

<p>
	<span style="font-size:20px;">Requirements</span>
</p>

<p>
	The method requires that you use the <strong>English (En-US)</strong> version of Windows 10 as delivered from your OEM. If any other language is applied from the factory then it might cause some of the logic to fail. If you do go down that route, then you'll need to prepare language specific versions of the zonemapping.csv and other files as necessary. So let's get started. You can always install language packs later.
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 1. Get the scripts</span>
</p>

<p>
	<span style="color:#ff0000;">Note: You can only download these files when <strong>logged on</strong> as a <strong>member</strong> of <a href="https://www.windows-noob.com" ipsnoembed="true" rel="external">https://www.windows-noob.com</a> </span>
</p>

<p>
	<span style="color:#ff0000;">Note: Intune has a hard block of <strong>200,000 bytes per PowerShell script</strong>. To get around this limit, I've removed most of the original comments from the Powershell scripts. The resulting script can be <strong>uploaded to Intune</strong> as it's less than the 200,000 bytes limit even with all the files encoded. If you'd like a copy of the version <strong>with comments included to help with troubleshooting</strong>, scroll to the very bottom of this blog post.</span>
</p>

<p>
	Download the <strong>condensed</strong> ZIP: <a class="ipsAttachLink" data-fileext="zip" data-fileid="22987" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=22987&amp;key=a8ba4e75ca6a94e6cc50c15b375e5109" rel="">win.ap.CreateScheduledTask.SetTimeZone_CONDENSED_VERSION.zip</a>
</p>

<p>
	Extract the <strong>condensed</strong> ZIP file to <strong>C:\Scripts\SetTimeZone</strong>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 2. Get ServiceUI.exe from MDT</span>
</p>

<p>
	You'll need the<strong> ServiceUI.exe</strong> executable file to display user interfaces (UI) to end users when operating in SYSTEM context. To get the file, <a href="https://www.microsoft.com/en-us/download/details.aspx?id=54259" rel="external nofollow" target="_blank">download and install MDT</a> somewhere and navigate to <strong>C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64</strong>. To download MDT click <a href="https://www.microsoft.com/en-us/download/details.aspx?id=54259" rel="external nofollow" target="_blank">here</a>.
</p>

<p>
	Copy the <strong>ServiceUI.exe</strong> file to your extracted <strong>SetTimeZone\Encode</strong> folder so it looks like this.
</p>

<p>
	 
</p>

<p>
	<img alt="ServiceUI exe.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22974" data-ratio="61.06" data-unique="ovgz7ybh1" width="814" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/1678705521_ServiceUIexe.png.b68e0a78c99c22c6f515fd79059b3c70.png"></p>

<p>
	<span style="font-size:24px;">Step 3. Modify the scripts</span>
</p>

<p>
	Open <strong>SetTimeZone-GUI.ps1</strong> and <strong>SyncTime.ps1</strong> in PowerShell ISE and make changes as appropriate. Once done editing those scripts to suit your needs save the changes. Then run the <strong>Encode</strong> script to generate the encoded txt files which you will paste into the variables highlighted below.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22986" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/1403754904_blankvariables.png.3a0f2791e90848a51907750daee690e2.png" rel=""><img alt="blank variables.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22986" data-ratio="48.80" data-unique="2ux8k8wop" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/854770986_blankvariables.thumb.png.96a713a48af310bc97849937427de355.png"></a>
</p>

<p>
	you can do that by locating the appropriate TXT file for each encoded file, for example for <strong>ServiceUI.exe</strong> it'll be the <strong>ServiceUI.txt</strong> file, open it in notepad,<strong> </strong>
</p>

<p>
	<strong>copy</strong> the contents of that file using <strong>CTRL+A</strong> and <strong>CTRL+C</strong>
</p>

<p>
	<img alt="ServiceUI encoded.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22978" data-ratio="68.92" data-unique="iif3wqa1t" width="753" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/1174704588_ServiceUIencoded.png.90180fa84a0b003fbff1d2ad3335773b.png"></p>

<p>
	and<strong> paste</strong> the results using <strong>CTRL+V</strong> into the associated variable, once you've done all 5 encoded files it'll look something like this
</p>

<p>
	<img alt="encoded files added to variables.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22985" data-ratio="63.92" data-unique="pmrxwdqis" width="765" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/939467944_encodedfilesaddedtovariables.png.6f20984b44d6a47e5576c92f1d715833.png"></p>

<p>
	 
</p>

<p>
	If you are happy with all the changes in <strong>win.ap.CreateScheduledTask.SetTimeZone.ps1</strong>, save the changes.
</p>

<p>
	<span style="font-size:24px;">Step 4. Deploy it from Intune</span>
</p>

<p>
	In Microsoft Endpoint Manager, select devices, scripts and add a new PowerShell script. Fill in some details like so.
</p>

<p>
	<img alt="deploy the script.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22973" data-ratio="60.75" data-unique="1o2z1i8y6" width="958" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/570294064_deploythescript.png.1b6bcfc9dc204d1c30530a06b43acc9f.png"></p>

<p>
	Deploy it to your Windows Autopilot users (start with a small group of users to test...), note that if you deploy this script to users that have already enrolled, the script checks if the enrollment was within the last 72 hours and if it was it will run, but if the enrollment was more than 72 hours ago, it'll do nothing.
</p>

<p>
	<span style="font-size:24px;">Step 5. Test it out</span>
</p>

<p>
	First off, let's see what the expected outcome is. After Windows Autopilot enrollment is complete, and the user has logged on to the desktop, shortly after they login they will see a popup window asking them to <strong>Confirm</strong> or <strong>Change</strong> their Time Zone and Region settings. Below is an example of that.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22957" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/2062949507_Pleaseconfirmyourtimezonesettings.png.7031255aef0c3b4c7821dcd58b681c5b.png" rel=""><img alt="Please confirm your timezone settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22957" data-ratio="75.00" data-unique="crm0jokgz" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/816978940_Pleaseconfirmyourtimezonesettings.thumb.png.cb4f9482995dce5185c0c169fdcb8348.png"></a>
</p>

<p>
	The user can confirm the settings by simply clicking <strong>Confirm</strong>, or if they want to change any of the options they can do so by clicking the relevant drop down menu.
</p>

<p>
	In this example the user changed the <strong>Regional format</strong> to <strong>English (Sweden)</strong>, from English (United States) and after clicking <strong>Change</strong> the settings are applied.
</p>

<p>
	<img alt="english sweden.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22958" data-ratio="61.97" data-unique="dveneyn0j" width="539" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/796788214_englishsweden.png.fbd4612bd3a3ef97d108266887819756.png"></p>

<p>
	The following will occur when Confirm or Change is clicked.
</p>

<p>
	The keyboard layout is set (1), the regional format is in the chosen format (2) and the time will change to the selected timezone within one minute (3). The time sync takes place via an event generated in event viewer by the SetTimeZone-Gui script.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22988" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/404959213_changes123.png.f45d80f59cc9638753a60c334457f61e.png" rel=""><img alt="changes 123.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22988" data-ratio="75.00" data-unique="4btk99s0i" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/318922061_changes123.thumb.png.443526fe4b18f1b4af3260e1878c31d4.png"></a>
</p>

<p>
	<span style="font-size:24px;">Windows 11 support</span>
</p>

<p>
	Does it work with Windows 11 ? absolutely !
</p>

<p>
	see here:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22972" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/270245985_settimezoneinwin11.png.a0c104bfce4646cd7ff68a4524113cdd.png" rel=""><img alt="settimezone in win11.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22972" data-ratio="66.70" data-unique="lhoxz19xb" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/928798202_settimezoneinwin11.thumb.png.1e6bf7f65f73d0ce88d6e5dce8b65c2a.png"></a>Job done !
</p>

<p>
	<span style="font-size:24px;">Troubleshooting</span>
</p>

<p>
	<span style="color:#ff0000;">Note: If you are testing this on a hyper-v virtual machine, please disable enhanced mode. </span>
</p>

<p>
	There are three log files generated by this solution
</p>

<ul><li>
		<strong>win.ap.CreateScheduledTask.SetTimeZone.log</strong> located in C:\Windows\Temp
	</li>
	<li>
		<strong>win.ap.SetTimeZone-GUI.log</strong> located in C:\Users\&lt;username&gt;\appdata\local\Temp
	</li>
	<li>
		<strong>win.ap.synctime.log</strong> located in C:\Windows\Temp
	</li>
</ul><p>
	Here you can see it changing the time zone as revealed in the log file time change...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="22971" href="https://www.windows-noob.com/forums/uploads/monthly_2021_12/721907037_successfullyset.png.4ba14b11b351a765e8531cde0b2b3f32.png" rel=""><img alt="successfully set.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22971" data-ratio="44.40" data-unique="2h87soysk" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/190931968_successfullyset.thumb.png.24dc16e290610ddf8d5d3469d4a6798d.png"></a>
</p>

<p>
	the following scheduled tasks are created.
</p>

<p>
	<img alt="Scheduled Tasks.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22979" data-ratio="61.26" data-unique="voqpu5h0f" width="981" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/160445715_ScheduledTasks.png.c3e816021cb9c9548fe798855edfc350.png"></p>

<p>
	The SetTimeZone scheduled task will run within a few minutes of the user logging in, it runs the following script.
</p>

<p>
	<img alt="Install_SetTimeZone.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22967" data-ratio="75.63" data-unique="sgaltqpog" width="632" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/Install_SetTimeZone.png.e3a73650d838b76a44bf6b7b96bd98ba.png"></p>

<p>
	which in turn launches Powershell and our SetTimeZone-Gui.ps1 script
</p>

<pre class="ipsCode" id="ips_uid_4450_10">%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File %temp%\SetTimeZone-Gui.ps1</pre>

<p>
	That will launch the UI shown previously, allowing the end user to confirm or change the detected settings. Once the user confirms or changes the timezone settings an event ID will be generated which will in turn launch the Synctime Based on EventId task.
</p>

<p>
	<img alt="EventId.png" class="ipsImage ipsImage_thumbnailed" data-fileid="22980" data-ratio="75.76" data-unique="y39v1nnnv" width="854" src="https://www.windows-noob.com/forums/uploads/monthly_2021_12/EventId.png.f6c442c4b827a078085df08229b9db2f.png"></p>

<p>
	Magic <span><span class="ipsEmoji">?</span></span>
</p>

<p>
	If the user ignores the popup and restarts the computer, it will appear again after logging on every time they logon for 7 days. You can change that behavior via the scripts settings.Ok that's it for this blog post, see you next time,
</p>

<p>
	cheers
</p>

<p>
	niall
</p>

<p>
	 
</p>

<p>
	Related: <a href="https://smsagent.blog/2022/05/13/beware-of-changing-regional-format-after-intune-enrolment/" ipsnoembed="true" rel="external nofollow">https://smsagent.blog/2022/05/13/beware-of-changing-regional-format-after-intune-enrolment/</a>
</p>

<p>
	Footnote: Here is the <strong>commented version</strong> of ZIP. This version of the scripts cannot be uploaded to Intune as it's too big, use for troubleshooting purposes only.<a class="ipsAttachLink" data-fileext="zip" data-fileid="22983" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=22983&amp;key=6b1ef2e3c869f50b8f1f73652652f6fa" rel="">win.ap.CreateScheduledTask.SetTimeZone_COMMENTED_VERSION.zip</a>
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">22682</guid><pubDate>Mon, 13 Dec 2021 13:16:53 +0000</pubDate></item><item><title>Configuring the Registered Owner and Organization in Windows Autopilot delivered PCs</title><link>https://www.windows-noob.com/forums/topic/21134-configuring-the-registered-owner-and-organization-in-windows-autopilot-delivered-pcs/</link><description><![CDATA[
<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	I received a brand new HP Laptop (HP EliteBook 830 G6) to verify our current Autopilot setup, and I went through OOBE. All seemed well and I was curious about the version of Windows shipped so I ran <strong>WinVer</strong>. The following screen appeared.
</p>

<p>
	<img alt="winver.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21420" data-ratio="89.99" data-unique="6j3lx3h0v" width="689" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/winver.png.c2756006bb2ada53cc5a9096f6de9051.png"></p>

<p>
	Notice how the registered owner and registered organization fields are automatically populated with HP's default settings, this was a Windows Autopilot enrolled HP delivered with HP's business clean image (no bloatware). The following registry key reveals where those values are set.
</p>

<p>
	HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21421" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/47798236_registrysettings.png.251f94262d7103574460165900e49a3a.png" rel=""><img alt="registry settings.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21421" data-ratio="51.10" data-unique="e5ydi41op" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/2075673346_registrysettings.thumb.png.16eb730a2b6a9dd1be8446b497e399b7.png"></a>
</p>

<p>
	if the following <strong>REG_SZ</strong> keys are missing:
</p>

<ul>
<li>
		RegisteredOrganization
	</li>
	<li>
		RegisteredOwner
	</li>
</ul>
<p>
	You'd see the following instead.
</p>

<p>
	<img alt="values not set.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21422" data-ratio="89.99" data-unique="osqv58is5" width="689" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1838045724_valuesnotset.png.f77312a5076f7c4cfe95078d0deed58f.png"></p>

<p>
	So now that I knew why I was seeing those values I decided to fix it.
</p>

<p>
	<span style="font-size:24px;">Step 1 - Add a PowerShell script to Endpoint Manager</span>
</p>

<p>
	In <a href="https://endpoint.microsoft.com" rel="external nofollow">Microsoft Endpoint Manager</a><span ipsnoautolink="true"> select <strong>Devices</strong> and then select <strong>Scripts</strong> as shown here (alternatively, choose Devices, Windows, PowerShell Scripts...)</span>
</p>

<p>
	<img alt="devices and scripts.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21423" data-ratio="146.29" data-unique="e7wggsy55" width="512" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1850225630_devicesandscripts.png.b717b145ff11a71eb20ab59c68ee1cbc.png"></p>

<p>
	Click on <strong>Add</strong> and select <strong>Windows 10</strong> as the operating system.
</p>

<p>
	<img alt="add windows 10.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21424" data-ratio="36.86" data-unique="72q9cpn99" width="727" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1985265636_addwindows10.png.6d2f1d56b05dd5726e940f9e78aa4131.png"></p>

<p>
	 
</p>

<p>
	Fill in the <strong>Name</strong> of the script and a <strong>description</strong>, note that the Name does not have to match the actual name of the script.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21429" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/871243975_nameanddescriptionofscript.png.3086d62fa59c568ca7868f946ce5ca04.png" rel=""><img alt="name and description of script.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21429" data-ratio="42.40" data-unique="fdo9d7lab" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1647099200_nameanddescriptionofscript.thumb.png.c612ad20606742da489ce1c99907f452.png"></a>
</p>

<p>
	<span style="color:#ff0000;">Note: you must be a logged in member of windows-noob.com to download this script.</span>
</p>

<p>
	Next, point it to the PowerShell script which you can download here and select to Run this script using the logged on credentials.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21428" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1046942696_addpowershellscript.png.6c9b5f78ee20159fba14c760c72d5e30.png" rel=""><img alt="add powershell script.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21428" data-ratio="42.40" data-unique="nh810bxqc" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/440650684_addpowershellscript.thumb.png.f5944a8963c940d4ba54251a5ae7634b.png"></a>
</p>

<p>
	Next select the <strong>Groups</strong> you want to assign it to, I selected my <strong>Windows 10 Autopilot DEVICES</strong> group
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21430" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/40589029_windows10autopilotDEVICESgroup.png.bf8869961382fc7d59d65a7861e258fa.png" rel=""><img alt="windows  10 autopilot DEVICES group.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21430" data-ratio="42.40" data-unique="ifjweujcq" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/178311306_windows10autopilotDEVICESgroup.thumb.png.8304e8db48936a5d260d3e6fb432be34.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 2. Test an Autopilot device</span>
</p>

<p>
	Start OOBE (out of box experience) on an Autopilot enrolled device.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21431" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/154412953_autopilotoobe.png.02237adaadf051dfe0ec37b3cdfcaeea.png" rel=""><img alt="autopilot oobe.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21431" data-ratio="75.00" data-unique="mqcy1pv56" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1341615782_autopilotoobe.thumb.png.b62f586f938775fbe05a88c49eda8788.png"></a>
</p>

<p>
	move through the screens and you'll have to enter your credentials at the welcome to your Tenant name screen
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21432" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/847084915_welcometotechnicalpreview.png.c25d0e822b0fbc3701f604c4ccdcfa1e.png" rel=""><img alt="welcome to technical preview.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21432" data-ratio="75.00" data-unique="tcoizj5yp" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1379078208_welcometotechnicalpreview.thumb.png.a09daf99f3ff1a98536543a1d003e9db.png"></a>
</p>

<p>
	after signing in successfully the Enrollment Status Page will appear (if configured to do so)
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21435" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/ESP.png.edd54611ade3eae3717e650f3ab9d24d.png" rel=""><img alt="ESP.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21435" data-ratio="75.00" data-unique="7q7y9e4oy" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/ESP.thumb.png.c4d95dbcf6fdad548e36d0b5cbd09d24.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 3. Verify changes</span>
</p>

<p>
	If everything went according to plan, after a while Windows Autopilot will be completed and you'll be logged on to the desktop, you can now verify the changes by typing <strong>WinVer</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21436" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1971655283_winverfixed.png.7c26b8d57257b8c307e44b7cfa6b1a85.png" rel=""><img alt="winver fixed.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21436" data-ratio="75.00" data-unique="y3ccowczh" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/1041384012_winverfixed.thumb.png.fee730b78312f7e35815a7bf3d90b871.png"></a>
</p>

<p>
	<span style="font-size:24px;">Troubleshooting</span>
</p>

<p>
	If things didn't go as planned take a look at the <strong>IntuneManagementExtension.log</strong> with CMTrace. It's found in the C:\ProgramData\Microsoft\IntuneManagementExtention\Logs folder
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="21438" href="https://www.windows-noob.com/forums/uploads/monthly_2020_08/image.png.5652dd335eaf4ace60ad25c416bdda26.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="21438" data-ratio="75.00" data-unique="ho1so9qbb" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2020_08/image.thumb.png.595dc66ed484ea4ba53d97cd4a2cd079.png"></a>
</p>

<p>
	and confirm that the script ran successfully and that it ran in User context (user was a local admin in this case). If you need to run it as SYSTEM then change the variable for RegisteredOwner in the script to something else.
</p>

<p>
	job done !
</p>

<p>
	<span style="font-size:24px;">Downloads</span>
</p>

<p>
	Here's the PowerShell script used above
</p>

<p>
	<a class="ipsAttachLink" contenteditable="false" data-fileext="ps1" data-fileid="21437" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=21437" rel="">ConfigureRegistered_User_Org.ps1</a>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">21134</guid><pubDate>Thu, 06 Aug 2020 16:27:31 +0000</pubDate></item><item><title>PC Buyback for Windows Autopilot devices - part 3</title><link>https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	In <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a> I showed you how to prepare Azure for the PC Buyback app, in <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/" rel="">part 2</a> you added the Win32 app, deployed it and saw how it behaved on a Windows Autopilot registered device. In this part we'll add some additional functionality <strong>namely logging to Azure tables</strong> so that we have a <strong>record of when the PC went through the process of PC Buyback</strong>. To set this up we'll add another 2 http triggers, and then configure their integration.
</p>

<p>
	Note: If you are new to this it might seem overwhelming, don't panic, take your time and follow my guide, if you do it correctly you'll get a successful result.
</p>

<p>
	This mini series is broken down into the following parts:
</p>

<ul>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/" rel="">part 2</a>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3/" rel="">part 3</a> &lt;--- <strong>You are here</strong>
	</li>
</ul>

<p>
	<span style="font-size:24px;">Step 1. Create the AddDataToAzure http trigger</span>
</p>

<p>
	In the previously created PCBuyback Function app, create a new http trigger called <strong>AddDataToAzure</strong>
</p>

<p>
	<img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24205" data-ratio="84.81" data-unique="2sngsszak" width="790" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/image.png.4b1402f1240556e2f9b37ddc00944b8d.png">
</p>

<p>
	In the newly created Http trigger, click on <strong>Code + Test </strong>and paste in the following code to <strong>overwrite the existing code</strong>...
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_9967_10" style=""><span class="com">#######################################################################################################################################</span><span class="pln">
</span><span class="com"># use this code in a http trigger as part of a function app</span><span class="pln">
</span><span class="com"># Niall Brady, 2024/05/08</span><span class="pln">
</span><span class="com"># for more info see https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3</span><span class="pln">
</span><span class="com"># https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-powershell?tabs=portal</span><span class="pln">
</span><span class="com">#######################################################################################################################################</span><span class="pln">


</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="typ">Net</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">System</span><span class="pun">;</span><span class="pln">
</span><span class="com">#using namespace System.DateTime;</span><span class="pln">

</span><span class="com"># Input bindings are passed in via param block.</span><span class="pln">
param</span><span class="pun">(</span><span class="pln">$Request</span><span class="pun">,</span><span class="pln"> $TriggerMetadata</span><span class="pun">,</span><span class="pln"> $inputTable</span><span class="pun">)</span><span class="pln">

$Tenant </span><span class="pun">=</span><span class="pln"> </span><span class="str">"windowsnoob.com"</span><span class="pln">
$triggerName </span><span class="pun">=</span><span class="pln"> </span><span class="str">"ADD data TO Azure Table"</span><span class="pln">
</span><span class="com"># Write to the Azure Functions log stream.</span><span class="pln">
</span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> </span><span class="str">"PowerShell HTTP trigger function processed a request."</span><span class="pln">

</span><span class="com"># Interact with query parameters or the body of the request.</span><span class="pln">
$ComputerName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">ComputerName</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $ComputerName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $ComputerName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">ComputerName</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$UserName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">UserName</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $UserName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $UserName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">UserName</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$Model </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">Model</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $Model</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $Model </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">Model</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$Manufacturer </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">Manufacturer</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $Manufacturer</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $Manufacturer </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">Manufacturer</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$Serial </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">Serial</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $Serial</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $Serial </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">Serial</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com">#$DateReset = $Request.Query.DateReset</span><span class="pln">
</span><span class="com">#if (-not $DateReset) {</span><span class="pln">
</span><span class="com">#    $DateReset = $Request.Body.DateReset</span><span class="pln">
</span><span class="com">#}</span><span class="pln">
$Status </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">Status</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $Status</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $Status </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">Status</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$Reason </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">Reason</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $Reason</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $Reason </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">Reason</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$ResetType </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">ResetType</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $ResetType</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $ResetType </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">ResetType</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a ------------------------------------`n"</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Starting the following trigger:  '$triggerName'.`n"</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Connected to tenant: '$Tenant'.`n"</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$ComputerName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Adding this computer to Azure Tables: '$ComputerName'.`n"</span><span class="pln">
</span><span class="com">#}</span><span class="pln">

</span><span class="com">#fix the date</span><span class="pln">
</span><span class="com">#$NewDate = $(get-date($DateReset) -UFormat '+%Y-%m-%dT%H:%M:%S.000Z')</span><span class="pln">
</span><span class="com">#$DateReset = $NewDate</span><span class="pln">

$a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Get next row key....`n"</span><span class="pln">
</span><span class="com">#$nextRowKey=$([int]$(($inputTable.RowKey|measure -Maximum).Maximum)+1)</span><span class="pln">
$nextRowKey</span><span class="pun">=</span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Random</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a nextRowKey = '$nextRowKey'.`n"</span><span class="pln"> </span><span class="com"># this will be the row key that we insert in this operation</span><span class="pln">

</span><span class="com"># Input row into DB</span><span class="pln">
</span><span class="com">#$tableStorageItems = @()</span><span class="pln">

</span><span class="typ">Add</span><span class="pun">-</span><span class="typ">Type</span><span class="pln"> </span><span class="pun">@</span><span class="str">"
public struct rowitem {
public System.String PartitionKey;
public System.String RowKey;
public System.String ComputerName;
public System.String UserName;
public System.String Model;
public System.String Manufacturer;
public System.String Serial;
public System.String Status;
public System.String Reason;
public System.String ResetType;
}
"</span><span class="pun">@</span><span class="pln">

$PCBuyback </span><span class="pun">=</span><span class="pln"> </span><span class="typ">New</span><span class="pun">-</span><span class="typ">Object</span><span class="pln"> rowitem
$PCBuyback</span><span class="pun">.</span><span class="typ">PartitionKey</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
$PCBuyback</span><span class="pun">.</span><span class="typ">RowKey</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $nextRowKey</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">()</span><span class="pln">
$PCBuyback</span><span class="pun">.</span><span class="typ">ComputerName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $ComputerName
$PCBuyback</span><span class="pun">.</span><span class="typ">UserName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $UserName
$PCBuyback</span><span class="pun">.</span><span class="typ">Model</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $Model
$PCBuyback</span><span class="pun">.</span><span class="typ">Manufacturer</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $Manufacturer
$PCBuyback</span><span class="pun">.</span><span class="typ">Serial</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $Serial
$PCBuyback</span><span class="pun">.</span><span class="typ">Status</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $Status
$PCBuyback</span><span class="pun">.</span><span class="typ">Reason</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $Reason
$PCBuyback</span><span class="pun">.</span><span class="typ">ResetType</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $ResetType
</span><span class="com">#$tableStorageItems += $PCBuyback</span><span class="pln">

</span><span class="com"># insert the data</span><span class="pln">
$Result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Push</span><span class="pun">-</span><span class="typ">OutputBinding</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> outputTable </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> $PCBuyback

$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Adding the data returned (usually blank...): $Result `n"</span><span class="pln">

</span><span class="pun">}</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">-</span><span class="pln">date
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Exiting Azure function.`n"</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a ------------------------------------`n"</span><span class="pln">

</span><span class="com"># Associate values to output bindings by calling 'Push-OutputBinding'.</span><span class="pln">
</span><span class="typ">Push</span><span class="pun">-</span><span class="typ">OutputBinding</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> </span><span class="typ">Response</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">([</span><span class="typ">HttpResponseContext</span><span class="pun">]@{</span><span class="pln">
    </span><span class="typ">StatusCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="typ">HttpStatusCode</span><span class="pun">]::</span><span class="pln">OK
    </span><span class="typ">Body</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $body
</span><span class="pun">})</span></pre>

<p>
	Save the changes, like so...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24206" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/image.png.1427641fc128ef6b71740924eb7b2398.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24206" data-ratio="27.10" data-unique="vgfu0oru6" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/image.thumb.png.02de80d76d361977ebffbb8f9eded2e9.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 2. Modify the http trigger Integration</span>
</p>

<p>
	In the new http trigger <strong>AddDataToAzure, </strong>click on<strong> Integration </strong>and then click on<strong> Add input</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24208" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/integration.png.e41531dee31add136d8bce5015c4d758.png" rel=""><img alt="integration.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24208" data-ratio="31.80" data-unique="hq9llq0am" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/integration.thumb.png.2005d91e9bf9ff91425ee61c8230cd75.png"></a>
</p>

<p>
	In the <strong>Binding Type</strong> drop down menu, select <strong>Azure Table Storage</strong>, in the <strong>Storage account connectio</strong>n click on <strong>New</strong> and select your <strong>pcbuyback</strong> storage account (which was created during part 1 in the initial creation of the function app. Change the <strong>Table name</strong> to <strong>PCBuyback</strong>. When done, click on <strong>Add</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24209" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addinput.png.016622ebc6de3ee2282663351bd0a53f.png" rel=""><img alt="add input.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24209" data-ratio="156.58" data-unique="m7zaut1zl" width="479" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addinput.thumb.png.dbb2ec8de722c8e6a202fc4859e783d9.png"></a>
</p>

<p>
	 
</p>

<p>
	Next, do the same thing for Output by clicking on <strong>Add output</strong>, then configure it as shown in the screenshot below. Finally click <strong>Add</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24210" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addoutput.png.da88ed6d390c4a708b665dc05e26910c.png" rel=""><img alt="add output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24210" data-ratio="99.87" data-unique="qbc496oiu" width="751" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addoutput.thumb.png.a8741264b069b591996b390aa4dfae1d.png"></a>
</p>

<p>
	 
</p>

<p>
	After adding both the <strong>input</strong> and <strong>output</strong>, the <strong>integration</strong> should appear like this.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24214" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/AddDataToAzureintegrationisconfigured.png.bceab9d1b68861486c1893423740a5cd.png" rel=""><img alt="AddDataToAzure integration is configured.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24214" data-ratio="32.80" data-unique="59ns9netf" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/AddDataToAzureintegrationisconfigured.thumb.png.7b2a2645837533c85eddb88224722f6a.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 3. Create the VerifyDataAdded http trigger</span>
</p>

<p>
	In the previously created PCBuyback Function app, create a new http trigger called <strong>VerifyDataAdded</strong>
</p>

<p>
	In the newly created Http trigger, click on <strong>Code + Test </strong>and paste in the following code to <strong>overwrite the existing code</strong>...
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_8284_10" style=""><span class="com">#######################################################################################################################################</span><span class="pln">
</span><span class="com"># use this code in a http trigger as part of a function app</span><span class="pln">
</span><span class="com"># Niall Brady, 2024/05/08</span><span class="pln">
</span><span class="com"># for more info see https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3</span><span class="pln">
</span><span class="com"># https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-powershell?tabs=portal</span><span class="pln">
</span><span class="com">#######################################################################################################################################</span><span class="pln">

</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="typ">Net</span><span class="pln">
</span><span class="com"># Input bindings are passed in via param block.</span><span class="pln">
param</span><span class="pun">(</span><span class="pln">$Request</span><span class="pun">,</span><span class="pln"> $TriggerMetadata</span><span class="pun">,</span><span class="pln"> $inputTable</span><span class="pun">)</span><span class="pln">
$Tenant </span><span class="pun">=</span><span class="pln"> </span><span class="str">"windowsnoob.com"</span><span class="pln">
$triggerName </span><span class="pun">=</span><span class="pln"> </span><span class="str">"VerifyDataAdded"</span><span class="pln">
</span><span class="com"># Write to the Azure Functions log stream.</span><span class="pln">
</span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> </span><span class="str">"PowerShell HTTP trigger function processed a request."</span><span class="pln">

</span><span class="com"># Interact with query parameters or the body of the request.</span><span class="pln">
$nextRowKey </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="pln">nextRowKey
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $nextRowKey</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $nextRowKey </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="pln">nextRowKey
</span><span class="pun">}</span><span class="pln">
$CheckComputerName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="typ">CheckComputerName</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $CheckComputerName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $CheckComputerName </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="typ">CheckComputerName</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a ------------------------------------`n"</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Starting the following trigger:  '$triggerName'.`n"</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Connected to tenant: '$Tenant'.`n"</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$nextRowKey </span><span class="pun">-</span><span class="kwd">and</span><span class="pln"> $CheckComputerName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Checking the following row: '$nextRowKey'.`n"</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Looking for this computername: '$CheckComputerName'.`n"</span><span class="pln">
   
</span><span class="com">#}</span><span class="pln">

</span><span class="com">#Put all table rows into $table</span><span class="pln">
$table</span><span class="pun">=</span><span class="str">""</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pun">(</span><span class="pln">$row </span><span class="kwd">in</span><span class="pln"> $inputTable</span><span class="pun">){</span><span class="pln">
    $table</span><span class="pun">+=</span><span class="str">"$($row.PartitionKey) - $($row.RowKey) - $($row.ComputerName) - $($row.UserName) - $($row.Model) - $($row.Manufacturer) - $($row.Serial) - $($row.Status) - $($row.Reason) - $($row.ResetType)
   "</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="com"># print out the results...</span><span class="pln">
</span><span class="com">#write-host "&gt;&gt;&gt;&gt;&gt;$table&lt;&lt;&lt;&lt;&lt;"</span><span class="pln">

</span><span class="com">#validate section</span><span class="pln">
</span><span class="com">#$body = $body + "Validate: $($($inputTable|Where-Object -Property RowKey -EQ 12).ComputerName)"</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
$found </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="pln">$inputTable</span><span class="pun">|</span><span class="typ">Where</span><span class="pun">-</span><span class="typ">Object</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Property</span><span class="pln"> </span><span class="typ">RowKey</span><span class="pln"> </span><span class="pun">-</span><span class="pln">EQ $nextRowKey</span><span class="pun">).</span><span class="typ">ComputerName</span><span class="pun">)</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a ComputerName found: $found`n"</span><span class="pln">
</span><span class="com">#write-host "DEBUG: found " $found</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$found </span><span class="pun">-</span><span class="pln">match $CheckComputerName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a FOUND a MATCH :-)`n"</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    $a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a sorry, did not find a match :-(`n"</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">get</span><span class="pun">-</span><span class="pln">date
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Exiting Azure function.`n"</span><span class="pln">
$a </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Get</span><span class="pun">-</span><span class="typ">Date</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a ------------------------------------`n"</span><span class="pln">

</span><span class="com"># show the output to the browser...Associate values to output bindings by calling 'Push-OutputBinding'.</span><span class="pln">
</span><span class="typ">Push</span><span class="pun">-</span><span class="typ">OutputBinding</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> </span><span class="typ">Response</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">([</span><span class="typ">HttpResponseContext</span><span class="pun">]@{</span><span class="pln">
    </span><span class="typ">StatusCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="typ">HttpStatusCode</span><span class="pun">]::</span><span class="pln">OK
    </span><span class="typ">Body</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $body
</span><span class="pun">})</span></pre>

<p>
	Click <strong>Save</strong> after adding the code above to the new trigger.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24211" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedhttptrigger.png.d6660cb4f7b3f8cc3f2e5e2e9980d2df.png" rel=""><img alt="VerifyDataAdded http trigger.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24211" data-ratio="50.00" data-unique="rn2uudlq2" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedhttptrigger.thumb.png.f7c2d8814c21ce4c3fa992bd8528da30.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 4. Modify the http trigger Integration</span>
</p>

<p>
	In the new http trigger <strong>VerifyDataAdded, </strong>click on<strong> Integration </strong>and then click on<strong> Add input, </strong>configure it like so
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24212" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/modifyintegrationinVerifyDataAdded.png.4022863f8147a8b2d66a90d9ecf20f97.png" rel=""><img alt="modify integration in VerifyDataAdded.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24212" data-ratio="50.30" data-unique="ry81jkrtj" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/modifyintegrationinVerifyDataAdded.thumb.png.991f0b3706413f7d84838adc50bd0a0d.png"></a>
</p>

<p>
	And next, make the following changes to the <strong>output</strong>.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24213" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedoutput.png.e616f07a85e84c023f578f086e017743.png" rel=""><img alt="VerifyDataAdded output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24213" data-ratio="100.54" data-unique="dknuxxndb" width="746" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedoutput.thumb.png.dfe17fc0c2a63eced3c4ae709defc486.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 5. Modify PCBuyback Azure table permissions</span>
</p>

<p>
	In your <strong>PCBuyback storage</strong> (contained within the PCBuyback resource group) modify the <strong>Access control (IAM)</strong> and add the following role assignments to your user that you want to create the Azure Table in the next step.
</p>

<ul>
	<li>
		Storage Table Data Contributor
	</li>
	<li>
		Storage Table Data Reader
	</li>
</ul>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24224" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/modifyaccesscontrolroleassignmentsforpcbuybackstorage.png.01c1e3602f7b149891abad8863898cb0.png" rel=""><img alt="modify access control role assignments for pcbuyback storage.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24224" data-ratio="21.40" data-unique="g53e9ndeu" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/modifyaccesscontrolroleassignmentsforpcbuybackstorage.thumb.png.951d837bbfe14ddcbf78c73ed4e8f224.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 6. Create the PCBuyback Azure table</span>
</p>

<p>
	In your <strong>PCBuyback storage</strong> (contained within the PCBuyback resource group) which may be named differently depending on how you setup the functionapp, using the <strong>Storage browser</strong> option in the menu, browse to <strong>Tables</strong> and click on <strong>+ Add table</strong> as shown here.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24215" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addtable.png.64e762c45d4a27e05ba781ca34b0bff6.png" rel=""><img alt="add table.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24215" data-ratio="40.00" data-unique="q2vm33so8" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addtable.thumb.png.ad9af6fa329a8b7f0ca844856c7a703e.png"></a>
</p>

<p>
	The <strong>Table name</strong> must be <strong>PCBuyback</strong> as shown here, click <strong>OK</strong> when done.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24216" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addPCBuybacktable.png.8534b94103c7fd923456eb5e8278425f.png" rel=""><img alt="add PCBuyback table.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24216" data-ratio="14.70" data-unique="d60h92xua" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addPCBuybacktable.thumb.png.fa57c7e03f6cd28e7b82d569d97f09c7.png"></a>
</p>

<p>
	The created PCBuyback table is shown.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24217" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/PCBuybacktablecreated.png.ef309980953814c63b344186140e9540.png" rel=""><img alt="PCBuyback table created.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24217" data-ratio="20.30" data-unique="s72f30y7n" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/PCBuybacktablecreated.thumb.png.eb5c9309c9464faf0ab2bfbe6e41e3f6.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 7. Verify the http triggers</span>
</p>

<p>
	Now that you've created the triggers and modified the integration, you'll need to verify that they do what they are supposed to do. Let's start with the <span style="font-size:14px;"><strong>AddDataToAzure</strong> trigger</span>. To test this, paste in the <strong>following text</strong> and click on <strong>Test/Run</strong>.
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_3239_5" style=""><span class="pun">{</span><span class="pln">
</span><span class="str">"ComputerName"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"AP-XXXXXXXX"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"UserName"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"NIALL"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"Model"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"HP EliteBook 830 G7 Notebook PC"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"Manufacturer"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"HP"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"Serial"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"XXXXXXXX"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"Status"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"OK"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"Reason"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"PC Buyback (Intune)"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"ResetType"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"WIPE"</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	as shown here...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24218" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/testrun.png.4c742562765439fa9b610b9f59b75b4e.png" rel=""><img alt="test run.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24218" data-ratio="50.20" data-unique="aqnqg777i" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/testrun.thumb.png.d0ec915583b51cc62cf16c6985caf478.png"></a>
</p>

<p>
	If you did everything correctly it'll return a <strong>200 HTTP response code</strong> along with the <strong>HTTP response content</strong>, if not, verify the steps above again.
</p>

<p>
	<img alt="test run successful.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24219" data-ratio="71.70" data-unique="viobngri9" width="569" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/testrunsuccessful.png.9c4eb7031abb67cc374537269d1b6a79.png">
</p>

<p>
	Once the above trigger is tested successfully, click on <strong>Overview </strong>in the http trigger, and <strong>copy the function URL</strong> somewhere useful.
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24220" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/copyfunctionURL.png.f225d151f2e93a88b9bd90c221cd29e8.png" rel=""><img alt="copy function URL.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24220" data-ratio="32.40" data-unique="7zx7of2w4" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/copyfunctionURL.thumb.png.8073dc1cd3b82d3e0596b47c27013f73.png"></a>
</p>

<p>
	Finally, you can verify that it actually has poked the data into Azure tables, by browsing to the PCBuyback table and reviewing the data added.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24221" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/dataissuccessfullyaddedtothePCBuybacktable.png.79cd04e981e61cec6d5e9191a9009fb9.png" rel=""><img alt="data is successfully added to the PCBuyback table.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24221" data-ratio="21.60" data-unique="f0m1ho8jk" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/dataissuccessfullyaddedtothePCBuybacktable.thumb.png.70fca51b6b9306eabf9e8337f70ddf16.png"></a>
</p>

<p>
	Now that you have the RowKey and ComputerName, you can use that data to verify the other trigger in this part, namely the <strong>VerifyDataAdded</strong> trigger. Use the following code in that <strong>Test/Run</strong> and modify it as appropriate for your environment.
</p>

<p>
	<span style="color:#e74c3c;"><strong>Note</strong>: The <strong>nextRowKey</strong> value will be revealed in the previous test and will be random, you need to provide the exact one from the previous test or copy it from the PCBuyback Azure tables. In other words, the <strong>nextRowKey </strong>value I'm showing below is unique to my environment and will most likely NOT work in your verification test.</span>
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_3239_7" style=""><span class="pun">{</span><span class="pln">
    </span><span class="str">"nextRowKey"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"1352755005"</span><span class="pun">,</span><span class="pln">
    </span><span class="str">"CheckComputerName"</span><span class="pun">:</span><span class="pln"> </span><span class="str">"AP-XXXXXXXX"</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	After running that test, Success ! It found a MATCH.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24223" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/foundaMATCH.png.e5e0172fd0dd40ab29574abfcecdcfad.png" rel=""><img alt="found a MATCH.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24223" data-ratio="153.37" data-unique="jyv654qqn" width="489" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/foundaMATCH.thumb.png.bc9b64cbb8d3e72a02a1b8a21b696aae.png"></a>
</p>

<p>
	Once the above trigger is tested successfully, click on <strong>Overview </strong>in the http trigger, and <strong>copy the function URL</strong> somewhere useful.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24225" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedfunctionurlcopied.png.bb3ed3c4398f96f47c8e22ada2052c01.png" rel=""><img alt="VerifyDataAdded function url copied.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24225" data-ratio="32.40" data-unique="o9r8rqsbh" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/VerifyDataAddedfunctionurlcopied.thumb.png.2301f2d89a66b7708acb0ff09218bdbb.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 8. Modify the PCBuyback.ps1 script</span>
</p>

<p>
	At this point we are done with the Azure changes and now need to modify the PCBuyback.ps1 PowerShell script. In PowerShell ISE (or VSCode) find this line and remove the # infront of StoreDetailsInAzure as shown below, also remove the $DateReset variable as we don't need it.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24227" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/removeREMinfrontofStoreDetailsInAzure.png.539acb64ac201bf32a771005a8a38223.png" rel=""><img alt="remove REM infront of StoreDetailsInAzure.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24227" data-ratio="15.80" data-unique="ye841xrzq" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/removeREMinfrontofStoreDetailsInAzure.thumb.png.c5b3185092a8c67d282777c0402daccf.png"></a>
</p>

<p>
	so that the line looks like this.
</p>

<p>
	<img alt="modifed code.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24228" data-ratio="23.75" data-unique="jxqv4pc0d" width="960" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/modifedcode.png.a6a2d0420cd9ed8d9183d276c69fc9f5.png">
</p>

<p>
	Next, locate the URI section here and add the two function URLS you copied in the steps above.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24229" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addandverifyurls.png.c32be25792ec78731008d16131ad0811.png" rel=""><img alt="add and verify urls.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24229" data-ratio="28.20" data-unique="v1dvrcrlu" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/addandverifyurls.thumb.png.3a82cac40d39bfee367b875174792c9c.png"></a>
</p>

<p>
	Save the script
</p>

<p>
	<span style="font-size:24px;">Step 9. Upload changes to Intune</span>
</p>

<p>
	Use the IntuneWinAppUtil.exe to create a new version of the app that we created in <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/#comment-76837" rel="">Step 6, part 2 here</a>,
</p>

<p>
	<img alt="intunewinapputil.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24230" data-ratio="52.35" data-unique="e633bkjna" width="978" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/intunewinapputil.png.5004be40eae1c3f984f3291553534e4c.png">
</p>

<p>
	After uploading the new intunewin version, log onto a test PC targeted with the PC Buyback app and test it.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24231" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/testingpcbuybackazuretables.png.f06215b686a415eccde5de319d887d23.png" rel=""><img alt="testing pcbuyback azure tables.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24231" data-ratio="75.00" data-unique="9fxbfws5o" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/testingpcbuybackazuretables.thumb.png.5943e310417a1b64c003a67026af08ba.png"></a>
</p>

<p>
	The app launches by the user clicking on it...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24232" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/applaunch.png.99c8211c0b6224b766eb27f573d8c804.png" rel=""><img alt="app launch.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24232" data-ratio="75.00" data-unique="69qtik03c" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/applaunch.thumb.png.89390a8870724cbb165a92ec28b56ce8.png"></a>
</p>

<p>
	and after clicking OK and reading the warning, the PC Buyback process begins in earnest.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24233" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/resetfiles.png.a302038455fe273f513114cd714622e1.png" rel=""><img alt="resetfiles.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24233" data-ratio="75.00" data-unique="thr1a9mfd" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/resetfiles.thumb.png.f36d09fd9ddc73fdcb8c97238e951eaf.png"></a>
</p>

<p>
	and while the PC is busy resetting itself as described in Part 2, a record was added to our <strong>PCBuyback Azure tables</strong>, confirming that the user actually did buy back their PC.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24234" href="https://www.windows-noob.com/forums/uploads/monthly_2024_05/success-therecordisaddedtoazuretables.png.c73f48f9cf0cd242fb10079c46d351aa.png" rel=""><img alt="success - the record is added to azure tables.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24234" data-ratio="23.30" data-unique="qg92yvjnf" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_05/success-therecordisaddedtoazuretables.thumb.png.1ec59171be4f90df87c81fe3c95b1919.png"></a>
</p>

<p>
	Success !
</p>

<p>
	that's it for this blog series, see you in the next one,
</p>

<p>
	cheers
</p>

<p>
	Niall
</p>
]]></description><guid isPermaLink="false">23414</guid><pubDate>Tue, 07 May 2024 21:07:41 +0000</pubDate></item><item><title>PC Buyback for Windows Autopilot devices - part 2</title><link>https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	In <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a> I showed you how to prepare Azure for the PC Buyback app, in this part we'll add the Win32 app, deploy it and see how it behaves on a Windows Autopilot registered device.
</p>

<p>
	This mini series is broken down into the following parts:
</p>

<ul>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/" rel="">part 2</a> &lt;--- <strong>You are here</strong>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3/" rel="">part 3</a>
	</li>
</ul>

<p>
	<span style="font-size:24px;">Step 1. Download the scripts</span>
</p>

<p>
	Download this zip and extract to <strong>C:\Dev\Intune\Win32 apps</strong>
</p>

<p>
	Note: you must be a logged on member of windows-noob.com to download the ZIP
</p>

<p>
	<a class="ipsAttachLink" data-fileext="zip" data-fileid="24195" href="https://www.windows-noob.com/forums/applications/core/interface/file/attachment.php?id=24195&amp;key=656b4e2ddad1067bcf6f4b7686217acc" rel="">PC Buyback - Intune.zip</a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 2. Get ServiceUI.exe from MDT</span>
</p>

<p>
	You'll need the<strong> ServiceUI.exe</strong> executable file to display user interfaces (UI) to end users when operating in SYSTEM context. To get the file, <a href="https://www.microsoft.com/en-us/download/details.aspx?id=54259" rel="external nofollow" target="_blank">download and install MDT</a> somewhere and navigate to <strong>C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64</strong>. To download MDT click <a href="https://www.microsoft.com/en-us/download/details.aspx?id=54259" rel="external nofollow" target="_blank">here</a>. Copy the 64 bit version of<strong> ServiceUI.exe</strong> file to your extracted <strong>win32app_source</strong> folder so it looks like this.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24154" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyserviceuiexetowin32app_source.png.0346531c80c8623368658c20e59116f5.png" rel=""><img alt="copy serviceui exe to win32app_source.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24154" data-ratio="33.20" data-unique="lo1t7qjx4" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyserviceuiexetowin32app_source.thumb.png.e8bd3d401fd956424da5a8e5558354ca.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 3. Get 7Zip for compressing files</span>
</p>

<p>
	Download <a href="https://7-zip.org/" rel="external nofollow">7Zip</a> and install it. Copy 7z.dll and 7z.exe from the default folder C:\Program Files\7-Zip
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24157" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copy7zipfiles.png.1be966d9df90bda61b8d6d913219a407.png" rel=""><img alt="copy 7zip files.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24157" data-ratio="75.08" data-unique="8lpz0jdgn" width="999" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copy7zipfiles.thumb.png.a03f381d2e70dd92d82258b783e1de3d.png"></a>
</p>

<p>
	Copy those 2 files to  <strong>C:\Dev\Intune\Win32 apps\PC Buyback - Intune\encode</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24158" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyfilestoencode.png.c16ae5245276622e3f040f59506e0012.png" rel=""><img alt="copy files to encode.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24158" data-ratio="46.10" data-unique="0u40l8ovz" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyfilestoencode.thumb.png.32e24ecee52f25fbd19cd75eddd26250.png"></a>
</p>

<p>
	 
</p>

<p>
	In PowerShell ISE run the Encode script..
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24159" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/ecodescripts.png.6e2e5ec099271ac25911ee89a9583a6a.png" rel=""><img alt="ecode scripts.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24159" data-ratio="70.40" data-unique="g37t7hjr3" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/ecodescripts.thumb.png.392fc982220923a6071d39bf4937f1bf.png"></a>
</p>

<p>
	After it is completed encoding the files, you'll have a bunch of additional text files in the encode folder.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24160" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/encodedfiles.png.e8ded10a9155f12ffb64102e01d6c339.png" rel=""><img alt="encoded files.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24160" data-ratio="92.02" data-unique="sagx5t16t" width="815" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/encodedfiles.thumb.png.ee126b781c8ac650ead4a8cfb7cb6834.png"></a>
</p>

<p>
	Open each text file using notepad, press CTRL+A to mark all the text, then copy using CTRL+C
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24161" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/markalltext.png.2991ca08c93856e11d8b06bcf2edf4f6.png" rel=""><img alt="mark all text.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24161" data-ratio="66.70" data-unique="z8oc2eqo1" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/markalltext.thumb.png.c00e8e08d4dcc38d680a2a53818b3b34.png"></a>
</p>

<p>
	and paste the content of each file using CTRL+V into the corresponding section of the <strong>PCBuyback.ps1</strong> script as shown below.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24163" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/encodedfilesaddedtoscript.png.334d57627da2647f37d2447cde2168f6.png" rel=""><img alt="encoded files added to script.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24163" data-ratio="42.40" data-unique="m9qdx9us3" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/encodedfilesaddedtoscript.thumb.png.32ea560b0a37fd7a81fbd99eec5c31e2.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="color:#e74c3c;"><strong>Note</strong>: The <strong>QR code</strong> used in the PC Buyback app points to part 1 of this blog series, but you can customize it to point to an internal knowledge base article to assist users with the entire process. One thing to keep in mind, I used </span><a href="https://www.qr-code-generator.com/" ipsnoembed="true" rel="external nofollow"><span style="color:#e74c3c;">https://www.qr-code-generator.com</span></a><span style="color:#e74c3c;"> to create the QR code, but after creating it, <strong>you'll need to resize it to 118x120 pixels</strong> (in MS paint or similar).</span>
</p>

<p>
	<br>
	<span style="font-size:24px;">Step 4. Modify variables</span>
</p>

<p>
	In the <strong>PCBuyback.ps1</strong> script, configure the following email related variables:
</p>

<ul>
	<li>
		<strong>$ToAddress</strong>
	</li>
	<li>
		<strong>$FromAddress</strong>
	</li>
	<li>
		<strong>$APIkey</strong>
	</li>
</ul>

<p>
	<img alt="to from sendmail api variables.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24179" data-ratio="25.78" data-unique="6lublzyhh" width="931" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/tofromsendmailapivariables.png.649e3ffec1ef93248b3cae448d3ab2b2.png">
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Next, copy the Function URL for each of the http triggers you created in <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a>, below shows you how to do that
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24164" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/getfunctionurl.png.10e1303cf7464d9d56305e3521cdae33.png" rel=""><img alt="get function url.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24164" data-ratio="22.10" data-unique="pj3wu8noo" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/getfunctionurl.thumb.png.7263689597aa4bdf205fe084ab76bd93.png"></a>
</p>

<p>
	paste those URLs into the corresponding variable in the script
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24165" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/triggersadded.png.9d6a0c132dee5cbd29bed7a0c42427b0.png" rel=""><img alt="triggers added.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24165" data-ratio="9.40" data-unique="0bzkevjo6" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/triggersadded.thumb.png.3778eded04ae08347e313fb5d66866d5.png"></a>
</p>

<p>
	Save the changes to the <strong>PCBuyback.ps1</strong> script.
</p>

<p>
	<span style="font-size:24px;">Step 5. Get the Microsoft Win32 content prep tool</span>
</p>

<p>
	Download the <a href="https://learn.microsoft.com/en-us/mem/intune/apps/apps-win32-prepare" rel="external nofollow">Win32 content prep tool</a> from <a href="https://go.microsoft.com/fwlink/?linkid=2065730" rel="external nofollow" target="_blank">here</a>. Copy the<strong> IntuneWinAppUtil.exe</strong> file to your <strong>Win32 apps </strong>root folder, it should look like this.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24167" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyintunewinapputiltowin32appsroot.png.4cf0112bb15a9043b174cbdaa856e7d6.png" rel=""><img alt="copy intunewinapputil to win32apps root.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24167" data-ratio="28.10" data-unique="0exla7rpp" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/copyintunewinapputiltowin32appsroot.thumb.png.07b719729401f7d6a3878193627815d5.png"></a>
</p>

<p>
	Open a command prompt and browse to the PCBuyback folder structure. Launch the <strong>IntuneWinAppUtil.exe</strong> file and answer the following.
</p>

<ul>
	<li>
		Please specify the source folder: <strong>win32app_source</strong>
	</li>
	<li>
		Please specify the setup file: <strong>PCBuyback.ps1</strong>
	</li>
	<li>
		Please specify the output folder: <strong>win32app_target</strong>
	</li>
	<li>
		Do you want to specify catalog folder (Y/N)?<strong> n</strong>
	</li>
</ul>

<p>
	as shown here.
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24166" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/intunewinapputilcommands.png.1119ddda65912c23f19d8a37f5e85246.png" rel=""><img alt="intunewinapputil commands.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24166" data-ratio="98.94" data-unique="d8mi4ywfk" width="758" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/intunewinapputilcommands.thumb.png.ee0e8711ddcf1e54fb781e8ac4f10558.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 6. Add the Win32 app in Intune</span>
</p>

<p>
	Log into <a href="https://intune.microsoft.com%20" rel="external nofollow">Intune</a> and add a new Win32 App. Below are some screenshots showing how I've configured the app.
</p>

<p>
	For Select app type, select Windows app (Win32) from the drop down menu
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24168" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/selectapptype.png.8eccafbc215f2c7b924c7d0c67f8639f.png" rel=""><img alt="select app type.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24168" data-ratio="25.60" data-unique="bbu339bgb" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/selectapptype.thumb.png.4e0ef77cbe26234620ed01a78972505d.png"></a>
</p>

<p>
	 
</p>

<p>
	Click on Select app package file and point it to the <strong>pcbuyback.intunewin</strong> file in the <strong>win32app_target</strong> folder, fill in some info about the app, for the logo, click on <strong>Select image</strong> and point it to the encode folder where the icon file can be used
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24169" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/logo.png.c6d6ece64921be9b70da7661396f55c7.png" rel=""><img alt="logo.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24169" data-ratio="66.00" data-unique="g3f63sxny" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/logo.thumb.png.eeb8ce3146aa3a73f842e66af1e4e106.png"></a>
</p>

<p>
	 
</p>

<p>
	fill in the install commands, point it to <strong>install_pcbuyback.cmd</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24170" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/installcommand.png.6ea4d2e3755beae341acb912d47ff454.png" rel=""><img alt="install command.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24170" data-ratio="73.70" data-unique="0kxkyf2y3" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/installcommand.thumb.png.787fd5c6377c452a3c001b6de780e395.png"></a>
</p>

<p>
	fill in the requirements,
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24171" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/requirements.png.0f2d202e1ca6eb4914a73c69b048aab1.png" rel=""><img alt="requirements.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24171" data-ratio="58.20" data-unique="fdvafbq4n" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/requirements.thumb.png.307e394fc4ab072395369699cb3bb22f.png"></a>
</p>

<p>
	and for detection rules point it to the detection script in the root of the PC Buyback - Intune files
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24172" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/detectionmethod.png.02b9e86e43741818768fb9f181fdd09c.png" rel=""><img alt="detection method.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24172" data-ratio="54.60" data-unique="9dc5j06gb" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/detectionmethod.thumb.png.4578f2f6afb42d8b1c75b155b9ecfd4d.png"></a>
</p>

<p>
	 
</p>

<p>
	finally deploy it to an Entra ID group that contains the computers that are targeted for buyback, and deploy it as <strong>Available</strong>.
</p>

<p>
	<span style="font-size:24px;">Step 7. Test the app on a device</span>
</p>

<p>
	On a test device that is already enrolled into Intune and Windows Autopilot registered, add the device to the azure ad group above and launch Company Portal. The <strong>PC Buyback</strong> app should appear.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24180" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/pcbuybackincompanyportal.png.11f3bca67d35355cbea4efa86b7120d9.png" rel=""><img alt="pc buyback in company portal.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24180" data-ratio="70.40" data-unique="23kpchyg6" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/pcbuybackincompanyportal.thumb.png.f9a0714a717ab11c24036c3882b93a82.png"></a>
</p>

<p>
	 
</p>

<p>
	Click <strong>Install</strong> and after a few moments the app should appear.
</p>

<p>
	 <a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24181" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/appshowingafterlaunchingfromcompanyportal.png.c0850b0ec4089ccba250b2af1ef0c1ae.png" rel=""><img alt="app showing after launching from company portal.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24181" data-ratio="70.40" data-unique="rs7hvo71m" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/appshowingafterlaunchingfromcompanyportal.thumb.png.a93072a29c351e266e2215d21c342c18.png"></a>
</p>

<p>
	 
</p>

<p>
	Clicking <strong>OK</strong> shows a warning
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24182" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/pcbuybackwarning.png.2314cef8797333cf27c62c38e1537cd8.png" rel=""><img alt="pc buyback warning.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24182" data-ratio="70.30" data-unique="cs8devxsc" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/pcbuybackwarning.thumb.png.bbfa55fd3bc51f61c0fc36216dee7bf2.png"></a>
</p>

<p>
	and clicking OK to the warning starts the process, after a few moments it will remove the device from Intune, then remove the Windows Autopilot registered device and zip up the logs before emailing them
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24183" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/zippingupthelogs.png.478e67083f04f1e7f0c274caac165abe.png" rel=""><img alt="zipping up the logs.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24183" data-ratio="70.40" data-unique="9a6im7ea1" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/zippingupthelogs.thumb.png.c2ffa075f472576b6a4eec87d0775d94.png"></a>
</p>

<p>
	After emailing the logs and confirmation that it's done PC Buyback, it will restart
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24184" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/restarting.png.4ee8c053434e06b0130d2f6b0a05e5d3.png" rel=""><img alt="restarting.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24184" data-ratio="75.00" data-unique="2gizxq4cx" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/restarting.thumb.png.34a9d48900ebd8d9f7bb5e3a9886a653.png"></a>
</p>

<p>
	after the restart it will start resetting Windows <strong>removing all apps and settings</strong> that were on the device
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24185" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/resettingthispc.png.245a4641062394344cfff41024a7bc9f.png" rel=""><img alt="resetting this pc.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24185" data-ratio="75.00" data-unique="cfifjdqv8" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/resettingthispc.thumb.png.406bf6d79a21e3d8a68ad9a95cc0e089.png"></a>
</p>

<p>
	After the reset, Windows installs itself again...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24187" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/windowsinstalling.png.dbfc5477d450e45051d3b0a42a1bd967.png" rel=""><img alt="windows installing.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24187" data-ratio="75.00" data-unique="f914oeekg" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/windowsinstalling.thumb.png.24e19da927e33f07cd99a480372224ca.png"></a>
</p>

<p>
	and after the reinstallation, it's back to the first screen of the OOBE, so the user can now setup their device personally
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24189" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.png.518d99cdbddaf93e4c05ed799154cb8b.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24189" data-unique="evh68xhif" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.thumb.png.df9577be813af7e7e8928656e78e92cf.png"></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24190" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.png.b7a8a8b22d09979c0e2d9cdad02ffde2.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24190" data-ratio="75.00" data-unique="3g786dn81" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.thumb.png.afa8b3a298587080713184009e72bbbc.png"></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24191" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.png.9a8608064d51afdc448975a1c91ae9ec.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24191" data-ratio="75.00" data-unique="96uxi28pf" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.thumb.png.539cea90cc88d469f62bf361f5743506.png"></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24192" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.png.49948639d5bb39cc160af9f5d5932ee3.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24192" data-ratio="75.00" data-unique="c9f92h9n0" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.thumb.png.09e2ebdb8e52824411e8f44e5f4b40c7.png"></a>
</p>

<p>
	When the user runs PC Buyback an email is sent to the email address you configured...
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24188" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/emailsent.png.bdaa4425570aa11064f6db72af62d403.png" rel=""><img alt="email sent.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24188" data-ratio="64.00" data-unique="4u6mawfdv" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/emailsent.thumb.png.cfcadcc791c3182bac53b8e3bb68ac89.png"></a>
</p>

<p>
	and the process will store details in Azure tables (coming in Part 3)
</p>

<p>
	<span style="font-size:24px;">Troubleshooting</span>
</p>

<p>
	If the app fails for whatever reason, it will log the details in C:\ProgramData\windowsnoob\PCBuyback\win.ap.pcbuyback.log
</p>

<p>
	 
</p>

<p>
	Below is a sample of that log file from a successfully wiped device
</p>

<pre class="ipsCode" id="ips_uid_7100_5">04/06/2024 10:00:42 Starting script: 'Win.AP.PCBuyback' version: '0.0.5' ...
04/06/2024 10:00:42 extracting scripts to 'C:\ProgramData\windowsnoob\PCBuyback'...
04/06/2024 10:00:42 decoding BASE64 encoded file...'7z.exe'
04/06/2024 10:00:43 decoding BASE64 encoded file...'7z.dll'
04/06/2024 10:00:45 decoding BASE64 encoded file...'scanforhelp.png'
04/06/2024 10:00:45 decoding BASE64 encoded file...'PCBuybackUI.png'
04/06/2024 10:00:47 Detecting the logged on user...
04/06/2024 10:00:47 localuserfull was identified as: 'AzureAD\NiallBrady'
04/06/2024 10:00:47 Detection method 1: The user was identified as: NiallBrady
04/06/2024 10:00:47 SID: 'S-1-12-1-1583932090-1131944776-3006070936-2698034199'
04/06/2024 10:00:47 found sid
04/06/2024 10:00:48 registrypath is: HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot
04/06/2024 10:00:48 Checking if registryvalue: 'PCBuyback' in registrypath: 'HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot' exists...
04/06/2024 10:00:49 Reg key exists...
04/06/2024 10:00:49 registrypath is: HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot
04/06/2024 10:00:49 Checking if registryvalue: 'PCBuyback' in registrypath: 'HKU:\S-1-12-1-1583932090-1131944776-3006070936-2698034199\SOFTWARE\windowsnoob\Autopilot' exists...
04/06/2024 10:01:09 Reason added: ''
04/06/2024 10:01:11 The user chose OK to the PCBuyback warning, starting the reset process...
04/06/2024 10:01:11 Is this a Windows Autopilot device:
04/06/2024 10:01:11 Checking if the device is registered as a Windows Autopilot device started...
04/06/2024 10:01:11 Device serial number: 3135-5201-3107-6925-8353-2276-24
04/06/2024 10:01:19 DEBUG: The following was returned from the graph call. '
04/06/2024 17:01:19 Starting Azure function...
04/06/2024 17:01:19 Connected to tenant: windowsnoob.com.
04/06/2024 17:01:19 supplied serial number: '3135-5201-3107-6925-8353-2276-24'.
04/06/2024 17:01:19 Get Device Reference from Intune.
DeviceTrue.
04/06/2024 17:01:19 Serial number: 3135-5201-3107-6925-8353-2276-24 is an autopilot machine.
 Exiting Azure function.'
04/06/2024 10:01:19 the device was detected as a Windows Autopilot device, so let's remove it as a registered AP device
04/06/2024 10:01:19 Remove Windows Autopilot device from Intune started.
04/06/2024 10:01:19 Windows Autopilot device serial number: 3135-5201-3107-6925-8353-2276-24
04/06/2024 10:01:20 DEBUG: The following was returned from the graph call. 'Success'
04/06/2024 10:01:20 Removed Windows Autopilot device '3135-5201-3107-6925-8353-2276-24' from intune.
04/06/2024 10:01:20 Exiting the Intune based PC Buyback script, thanks for watching :-).
  If all went well and if the recovery partition on this device is healthy, Windows Reset should begin in the next few moments...
04/06/2024 10:01:20 DEBUG: The user chose OK to the PC Buyback Warning message. Starting the Windows reinstallation process now...
04/06/2024 10:01:20 checking for Power...
04/06/2024 10:01:20 virtual machine detected, will not check for power.
04/06/2024 10:01:20 Creating folder to store logs etc...
04/06/2024 10:01:20 Grabbing the reason why the user wanted to reset...
04/06/2024 10:01:20 Grabbing 'C:\ProgramData\windowsnoob\PCBuyback' logs
04/06/2024 10:01:20 Grabbing Windows temp logs
04/06/2024 10:01:20 DEBUG: Folder size (in bytes) = 2.22250366210938
04/06/2024 10:01:20 DEBUG: truncated bytes = 3
04/06/2024 10:01:20 Folder size (in MB) = 3
04/06/2024 10:01:20 Log files size: 3
04/06/2024 10:01:20 Log file size limit = 10
04/06/2024 10:01:20 Log file size (3) is less than 10, will include temp logs in email...
04/06/2024 10:01:20 Creating Autopilot cab file...
04/06/2024 10:01:42 adding C:\ProgramData\windowsnoob\PCBuyback\Win.AP.PCBuyback.log</pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">23401</guid><pubDate>Mon, 01 Apr 2024 17:22:21 +0000</pubDate></item><item><title>PC Buyback for Windows Autopilot devices - part 1</title><link>https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/</link><description><![CDATA[<p>
	<span style="font-size:24px;">Introduction</span>
</p>

<p>
	Windows Autopilot allows you to quickly enroll devices using policies, apps and settings applicable to your tenant, and that's great for deploying new Windows devices. Those devices can be registered as Windows Autopilot registered devices by the OEM (Original Equipment Manufacturer) or by a third party integrator or by the organization themselves by importing the Windows Autopilot hardware CSV into Intune.
</p>

<p>
	After a device has reached end of life however, it needs to be disposed of or sold on. It would be nice to offer end users the ability to buy back their old Company hardware with minimum fuss, but at the same time to remove Intune management and remove the device from Windows Autopilot registration while installing a new copy of Windows 11 professional that the end user could use for their own personal use.
</p>

<p>
	I created a Win32 app that does all this called PC Buyback. The app integrates with a back end Azure app using http triggers to do the magic. This post will cover the app features and code needed to implement it in your own tenant.
</p>

<p>
	The features of the app are as follows:
</p>

<ul>
	<li>
		Easy to use
	</li>
	<li>
		Self-Service app available in Company Portal
	</li>
	<li>
		Removes company data and apps
	</li>
	<li>
		Re-installs Windows
	</li>
	<li>
		Changes Windows edition using OEM license info stored in BIOS
	</li>
	<li>
		Emails results to a company inbox
	</li>
	<li>
		Logging to Azure tables (optional)
	</li>
</ul>

<p>
	<span style="color:#c0392b;"><strong>Note</strong>: In this blog, the app uses http triggers that use certificate secrets, this is fine in a lab, but in production you should use <strong>Azure Key Vault </strong>instead as it's more secure. If you'd like to understand how to set that up please read my blog post about </span><a href="https://www.windows-noob.com/forums/topic/23483-getting-started-with-azure-key-vault/" rel=""><span style="color:#c0392b;">Azure Key Vault here</span></a><span style="color:#c0392b;">.</span>
</p>

<p>
	This mini series is broken down into the following parts:
</p>

<ul>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23400-pc-buyback-for-windows-autopilot-devices-part-1/" rel="">part 1</a> &lt;--- <strong>You are here</strong>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/" rel="">part 2</a>
	</li>
	<li>
		PC Buyback for Windows Autopilot devices - <a href="https://www.windows-noob.com/forums/topic/23414-pc-buyback-for-windows-autopilot-devices-part-3/" rel="">part 3</a>
	</li>
</ul>

<p>
	<span style="font-size:24px;">Step 1. Create resource group</span>
</p>

<p>
	In Entra, using an account that has permission to create Resource Groups in your subscription, create a resource group called PCBuyback, create it in the region that your tenant is located.
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24143" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createresourcegroup.png.8f1238b9df50ff3f0c71e8333e79ddfb.png" rel=""><img alt="create resource group.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24143" data-ratio="108.85" data-unique="11fws4nz7" width="689" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createresourcegroup.thumb.png.f285c349a72c4bac126385d6eb60f583.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 2. Create a function app in the resource group</span>
</p>

<p>
	In the PCBuyback resource group, create a <strong>function app</strong> in the same region as the resource group you created above.
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24144" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/PCBuybackfunctionapp.png.4fe2f7d97f2e3190f5449a43c2366b56.png" rel=""><img alt="PCBuyback function app.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24144" data-ratio="26.40" data-unique="dyqx6dndi" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/PCBuybackfunctionapp.thumb.png.9b0e92a54528f5b837598856a28edbcf.png"></a>
</p>

<p>
	<span style="font-size:24px;">Step 3. Create a RemoveAutopilotDevice http trigger</span>
</p>

<p>
	In the Function app, create a trigger called <strong>RemoveAutopilotDevice</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24145" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createremoveautopilotdevicehttptrigger.png.aad37dce02e41d3da2b9e7544c3b4609.png" rel=""><img alt="create removeautopilotdevice http trigger.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24145" data-ratio="55.90" data-unique="hvecacsos" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createremoveautopilotdevicehttptrigger.thumb.png.79b9031b7ca184e578305f27a4155294.png"></a>
</p>

<p>
	In the newly created Http trigger, click on <strong>Code + Test</strong>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24146" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/addingremoveautopilotdevicehttptrigger.png.e4022061003ead5ecf3d55270c4ed561.png" rel=""><img alt="adding removeautopilotdevice http trigger.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24146" data-ratio="88.24" data-unique="3cpl3d2dj" width="850" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/addingremoveautopilotdevicehttptrigger.thumb.png.95bb8303ea50c8dd946822dfd1ee6e08.png"></a>
</p>

<p>
	and paste in the following code to overwrite the existing code...
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_1949_7" style=""><span class="com">#  </span><span class="pln">
</span><span class="com"># Remove Autopilot device by serial number</span><span class="pln">
</span><span class="com"># Verify if the device is autopilot and delete it from intune</span><span class="pln">

</span><span class="com"># version: 0.1 windowsnoob.com 2024/03/31</span><span class="pln">

</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="typ">Net</span><span class="pln">

</span><span class="com"># Input bindings are passed in via param block.</span><span class="pln">
param</span><span class="pun">(</span><span class="pln">$Request</span><span class="pun">,</span><span class="pln"> $TriggerMetadata</span><span class="pun">)</span><span class="pln">

</span><span class="com"># Write to the Azure Functions log stream.</span><span class="pln">
</span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> </span><span class="str">"PowerShell HTTP trigger function processed a request."</span><span class="pln">

</span><span class="com"># Interact with query parameters or the body of the request.</span><span class="pln">
$serialNumber </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="pln">serialNumber
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $serialNumber</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
    $serialNumber </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="pln">serialNumber
</span><span class="pun">}</span><span class="pln">
</span><span class="com"># define the following variables</span><span class="pln">
$ApplicationID </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># create an application with permissions to delete devices in Azure </span><span class="pln">
$TenantDomainName </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># your tenant name</span><span class="pln">
$AccessSecret </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># this is the secret of the app you create in app registrations</span><span class="pln">

$GraphBody </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@{</span><span class="pln">
    </span><span class="typ">Grant_Type</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"client_credentials"</span><span class="pln">
    </span><span class="typ">Scope</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"https://graph.microsoft.com/.default"</span><span class="pln">
    client_Id </span><span class="pun">=</span><span class="pln"> $ApplicationID
    </span><span class="typ">Client_Secret</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $AccessSecret
</span><span class="pun">}</span><span class="pln">
</span><span class="com"># make initial connection to Graph</span><span class="pln">
$ConnectGraph </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Uri</span><span class="pln"> </span><span class="str">"https://login.microsoftonline.com/$TenantDomainName/oauth2/v2.0/token"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> POST </span><span class="pun">-</span><span class="typ">Body</span><span class="pln"> $GraphBody
</span><span class="com">#get the token</span><span class="pln">
$token </span><span class="pun">=</span><span class="pln"> $ConnectGraph</span><span class="pun">.</span><span class="pln">access_token

</span><span class="com"># to improve logging...</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> </span><span class="str">" `n"</span><span class="pln">
$response </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Starting Azure function...`n"</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Connected to tenant: $TenantDomainName.`n"</span><span class="pln">
</span><span class="com"># now do things...</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$serialNumber</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" You supplied serialNumber: '$serialNumber'"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
    </span><span class="typ">Try</span><span class="pun">{</span><span class="pln">
        </span><span class="com"># Get Device Reference from Intune</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get Device Reference from Intune"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $Device </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> </span><span class="typ">Get</span><span class="pln"> </span><span class="pun">-</span><span class="pln">uri </span><span class="str">"https://graph.microsoft.com/v1.0/deviceManagement/managedDevices?`$filter=contains(serialNumber,'$serialNumber')"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Headers</span><span class="pln"> </span><span class="pun">@{</span><span class="typ">Authorization</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bearer $token"</span><span class="pun">}</span><span class="pln"> </span><span class="pun">|</span><span class="pln"> </span><span class="typ">Select</span><span class="pun">-</span><span class="typ">Object</span><span class="pln"> </span><span class="pun">-</span><span class="typ">ExpandProperty</span><span class="pln"> </span><span class="typ">Value</span><span class="pln">    
        
        </span><span class="typ">If</span><span class="pun">(</span><span class="pln">$Device</span><span class="pun">){</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Found number of devices similar to '$serialNumber': $($Device.count)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">"`n"</span><span class="pln">
            </span><span class="typ">Foreach</span><span class="pun">(</span><span class="pln">$d </span><span class="kwd">in</span><span class="pln"> $Device</span><span class="pun">){</span><span class="pln">
                </span><span class="typ">If</span><span class="pun">(</span><span class="pln">$d</span><span class="pun">.</span><span class="pln">serialNumber </span><span class="pun">-</span><span class="pln">eq $serialNumber</span><span class="pun">){</span><span class="pln">
                    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get deviceID from Intune: $($d.id)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
                  </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> </span><span class="typ">Delete</span><span class="pln"> </span><span class="pun">-</span><span class="pln">uri </span><span class="str">"https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/$($d.id)"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Headers</span><span class="pln"> </span><span class="pun">@{</span><span class="typ">Authorization</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bearer $token"</span><span class="pun">}</span><span class="pln">     
                    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Successfully deleted Device $($d.serialNumber) from Intune. May take a few minutes to complete in Intune Portal."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
                    </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
                    $response </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Success"</span><span class="pln">
                    </span><span class="kwd">break</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        </span><span class="typ">Else</span><span class="pun">{</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" serialNumber: $serialNumber does not exist in Intune"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
            $response </span><span class="pun">+=</span><span class="pln"> </span><span class="str">"Failed"</span><span class="pln">
            </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="typ">Catch</span><span class="pun">{</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" $($Error)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Failed to get Device Reference from Intune."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $response </span><span class="pun">+=</span><span class="pln"> </span><span class="str">"Failed"</span><span class="pln">
        </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
    </span><span class="pun">}</span><span class="pln">

    </span><span class="typ">Try</span><span class="pun">{</span><span class="pln">
        </span><span class="com"># Get Device Reference from Windows AutoPilot</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get Device Reference from Windows AutoPilot"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $Device </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> </span><span class="typ">Get</span><span class="pln"> </span><span class="pun">-</span><span class="pln">uri </span><span class="str">"https://graph.microsoft.com/v1.0/deviceManagement/windowsAutopilotDeviceIdentities?`$filter=contains(serialNumber,'$serialNumber')"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Headers</span><span class="pln"> </span><span class="pun">@{</span><span class="typ">Authorization</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bearer $token"</span><span class="pun">}</span><span class="pln"> </span><span class="pun">|</span><span class="pln"> </span><span class="typ">Select</span><span class="pun">-</span><span class="typ">Object</span><span class="pln"> </span><span class="pun">-</span><span class="typ">ExpandProperty</span><span class="pln"> </span><span class="typ">Value</span><span class="pln">
        
        </span><span class="typ">If</span><span class="pun">(</span><span class="pln">$Device</span><span class="pun">){</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Found number of devices similar to '$serialNumber': $($Device.count)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">"`n"</span><span class="pln">
            </span><span class="typ">Foreach</span><span class="pun">(</span><span class="pln">$d </span><span class="kwd">in</span><span class="pln"> $Device</span><span class="pun">){</span><span class="pln">
                </span><span class="typ">If</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="pln">$d</span><span class="pun">.</span><span class="pln">serialNumber</span><span class="pun">)</span><span class="pln"> </span><span class="pun">-</span><span class="pln">eq $serialNumber</span><span class="pun">){</span><span class="pln">
                    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get deviceID from Windows Autopilot: $($d.id)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
                    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get ManagedDeviceId from Windows Autopilot: $($d.managedDeviceId)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
                    </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> </span><span class="typ">Delete</span><span class="pln"> </span><span class="pun">-</span><span class="pln">uri </span><span class="str">"https://graph.microsoft.com/v1.0/deviceManagement/windowsAutopilotDeviceIdentities/$($d.id)"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Headers</span><span class="pln"> </span><span class="pun">@{</span><span class="typ">Authorization</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bearer $token"</span><span class="pun">}</span><span class="pln">     
                    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Successfully deleted Serial Number $($d.serialNumber) from Windows Autopilot device. May take a few minutes to complete in Intune Portal."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
                    $response </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Success"</span><span class="pln">
                    </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
                    </span><span class="kwd">break</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        </span><span class="typ">Else</span><span class="pun">{</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Serial Number: $serialNumber does not exist in Windows Autopilot"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
            $response </span><span class="pun">+=</span><span class="pln"> </span><span class="str">"Failed"</span><span class="pln">
            </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="typ">Catch</span><span class="pun">{</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" $($Error)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Failed to get Serial Number: $serialNumber from Windows Autopilot."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $response </span><span class="pun">+=</span><span class="pln"> </span><span class="str">"Failed"</span><span class="pln">
        </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> $body
    </span><span class="pun">}</span><span class="pln">
    
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln">  </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Exiting Azure function."</span><span class="pln">
    
</span><span class="pun">}</span><span class="pln">

</span><span class="com"># Associate values to output bindings by calling 'Push-OutputBinding'.</span><span class="pln">
</span><span class="typ">Push</span><span class="pun">-</span><span class="typ">OutputBinding</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> </span><span class="typ">Response</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">([</span><span class="typ">HttpResponseContext</span><span class="pun">]@{</span><span class="pln">
 </span><span class="typ">StatusCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="typ">HttpStatusCode</span><span class="pun">]::</span><span class="pln">OK
 </span><span class="typ">Body</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $response
</span><span class="pun">})</span></pre>

<p>
	<span style="font-size:24px;">Step 4. Create a GetAPDeviceFromIntune http trigger</span>
</p>

<p>
	In the Function app, create a another http trigger called <strong>GetAPDeviceFromIntune </strong>and paste in the following code for that trigger.
</p>

<pre class="ipsCode prettyprint lang-sql prettyprinted" id="ips_uid_7635_7" style=""><span class="com"># Get Autopilot device from Intune</span><span class="pln">
</span><span class="com"># version: 0.1 windowsnoob.com 2024/03/31</span><span class="pln">


</span><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="typ">Net</span><span class="pln">
param</span><span class="pun">(</span><span class="pln">$Request</span><span class="pun">,</span><span class="pln"> $TriggerMetadata</span><span class="pun">)</span><span class="pln">
</span><span class="com"># define the following variables</span><span class="pln">
$ApplicationID </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># create an application with permissions to delete devices in Azure </span><span class="pln">
$TenantDomainName </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># your tenant name</span><span class="pln">
$AccessSecret </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="com"># this is the secret of the app you create in app registrations</span><span class="pln">
$serialNumber </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Query</span><span class="pun">.</span><span class="pln">serialNumber

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="kwd">not</span><span class="pln"> $serialNumber</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
    $serialNumber </span><span class="pun">=</span><span class="pln"> $Request</span><span class="pun">.</span><span class="typ">Body</span><span class="pun">.</span><span class="pln">serialNumber
</span><span class="pun">}</span><span class="pln">

$GraphBody </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@{</span><span class="pln">
    </span><span class="typ">Grant_Type</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"client_credentials"</span><span class="pln">
    </span><span class="typ">Scope</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"https://graph.microsoft.com/.default"</span><span class="pln">
    client_Id </span><span class="pun">=</span><span class="pln"> $ApplicationID
    </span><span class="typ">Client_Secret</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $AccessSecret
</span><span class="pun">}</span><span class="pln">
</span><span class="com"># make initial connection to Graph</span><span class="pln">
$ConnectGraph </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Uri</span><span class="pln"> </span><span class="str">"https://login.microsoftonline.com/$TenantDomainName/oauth2/v2.0/token"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> POST </span><span class="pun">-</span><span class="typ">Body</span><span class="pln"> $GraphBody
</span><span class="com">#get the token</span><span class="pln">
$token </span><span class="pun">=</span><span class="pln"> $ConnectGraph</span><span class="pun">.</span><span class="pln">access_token
</span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> </span><span class="str">"Get AP Device from Intune"</span><span class="pln">
</span><span class="com"># to improve logging...</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> </span><span class="str">" `n"</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Starting Azure function...`n"</span><span class="pln">
$body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Connected to tenant: $TenantDomainName.`n"</span><span class="pln">
</span><span class="com"># now do things...</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$serialNumber</span><span class="pun">)</span><span class="pln"> 
</span><span class="pun">{</span><span class="pln">
    $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" supplied serial number: '$serialNumber'"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
    </span><span class="kwd">try</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="com"># Get Device Reference from Intune</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Get Device Reference from Intune"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $DeviceReference </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Invoke</span><span class="pun">-</span><span class="typ">RestMethod</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Method</span><span class="pln"> </span><span class="typ">Get</span><span class="pln"> </span><span class="pun">-</span><span class="pln">uri </span><span class="str">"https://graph.microsoft.com/v1.0/deviceManagement/windowsAutopilotDeviceIdentities?`$top=25&amp;`$filter=contains(serialNumber,'$serialNumber')"</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Headers</span><span class="pln"> </span><span class="pun">@{</span><span class="typ">Authorization</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Bearer $token"</span><span class="pun">}</span><span class="pln"> </span><span class="pun">|</span><span class="pln"> </span><span class="typ">Select</span><span class="pun">-</span><span class="typ">Object</span><span class="pln"> </span><span class="pun">-</span><span class="typ">ExpandProperty</span><span class="pln"> </span><span class="typ">Value</span><span class="pln">
        </span><span class="com">#Write-Host $body</span><span class="pln">
        </span><span class="typ">Write</span><span class="pun">-</span><span class="typ">Host</span><span class="pln"> </span><span class="str">"Device Reference count: $($DeviceReference.Count)"</span><span class="pln">
        </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">$DeviceReference</span><span class="pun">.</span><span class="typ">Count</span><span class="pln"> </span><span class="pun">-</span><span class="pln">gt </span><span class="lit">0</span><span class="pun">)</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">   
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"DeviceTrue"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Serial number: $serialNumber is an autopilot machine"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        </span><span class="typ">Else</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"DeviceFalse"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
            $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Serial number: $serialNumber is not an autopilot machine"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
             </span><span class="com">#Write-Host "Device doesn't Exists"</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="typ">Catch</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" $($Error)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
        $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$(Get-Date)"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">" Failed to get Device Reference from Intune."</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="str">".`n"</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
 </span><span class="pun">}</span><span class="pln">

 $body </span><span class="pun">=</span><span class="pln"> $body </span><span class="pun">+</span><span class="pln"> </span><span class="str">"$a Exiting Azure function."</span><span class="pln">
</span><span class="com"># Associate values to output bindings by calling 'Push-OutputBinding'.</span><span class="pln">
</span><span class="typ">Push</span><span class="pun">-</span><span class="typ">OutputBinding</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> </span><span class="typ">Response</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">([</span><span class="typ">HttpResponseContext</span><span class="pun">]@{</span><span class="pln">
</span><span class="typ">StatusCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="typ">HttpStatusCode</span><span class="pun">]::</span><span class="pln">OK
</span><span class="typ">Body</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $body
</span><span class="pun">})</span></pre>

<p>
	<span style="font-size:24px;">Step 5. Create an enterprise app</span>
</p>

<p>
	In Microsoft EntraId, create an enterprise app called PCBuyback
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24147" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/registerthisapp.png.254edd265b365863c36c2680f53341b8.png" rel=""><img alt="register this app.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24147" data-ratio="90.69" data-unique="t82jf77pg" width="827" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/registerthisapp.thumb.png.1f53636034ca9a07c62dd0373c50261e.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 6. assign permissions to the app</span>
</p>

<p>
	Once created, click on <strong>API permissions</strong> and using the + Add a permission button, add permissions as I've listed below. Note that these are Application permissions (type) for <strong>Microsoft Graph</strong>, once done, don't forget to grant permission for your tenant.
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24194" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.png.0348707dcebb7499e2b39a55858e04bb.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24194" data-ratio="34.00" data-unique="h24xwr1ik" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/image.thumb.png.7c851986e9fc2fa3398367ffd70e49c8.png"></a>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:24px;">Step 7. Create a secret</span>
</p>

<p>
	In production use Azure key vault, for your lab you can quickly create a secret to test this.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24149" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createsecret.png.c89396f9014cec21ff68e3ed58fde610.png" rel=""><img alt="create secret.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24149" data-ratio="33.70" data-unique="qxry254op" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/createsecret.thumb.png.3c45238423c5521564703b7ed7ba5609.png"></a>
</p>

<p>
	Copy the value somewhere safe as you'll need it for the next step.
</p>

<p>
	<span style="font-size:24px;">Step 8. Edit the variables in the two triggers</span>
</p>

<p>
	In the two http triggers you just created, edit the variables and paste in the Enterprise App ID and secret, and your tenant name like so
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24150" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/editingthehttptriggers.png.de12cca3dabaaf9963c4ad30e22d1221.png" rel=""><img alt="editing the http triggers.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24150" data-ratio="51.80" data-unique="g98z526z4" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/editingthehttptriggers.thumb.png.4a4d91d035691537431ffa663723d3b6.png"></a>
</p>

<p>
	Once done, save the changes
</p>

<p>
	<span style="font-size:24px;">Step 9. Verify the http triggers</span>
</p>

<p>
	Now that you've created the triggers and assigned permissions, you'll need to verify that they do what they are supposed to do. Let's start with the <strong>GetAPDeviceFromIntune</strong>. To test this, paste in the <strong>serial number</strong> of a <strong>Windows Autopilot registered device</strong> and click on <strong>Test/Run</strong>.
</p>

<p>
	Replace the serial number below with the serial number of the computer you want to test with.<br type="_moz">
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted" id="ips_uid_2613_5" style=""><span class="pln">{

   "serialNumber": "5366-8776-5502-4105-6320-3369-17"

}</span></pre>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24151" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/testrunserial.png.b50c23a553a0348eff2f35b7eed84efe.png" rel=""><img alt="test run serial.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24151" data-ratio="53.10" data-unique="pbqmhhq7z" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/testrunserial.thumb.png.717d276224abb159136376b89758621f.png"></a>
</p>

<p>
	 
</p>

<p>
	After running, we can see it reports that the device is true as it is a Windows Autopilot registered device.
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24152" href="https://www.windows-noob.com/forums/uploads/monthly_2024_03/devicetrue.png.c2cb3735c28245bf82be1e51c84ea96e.png" rel=""><img alt="devicetrue.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24152" data-ratio="39.60" data-unique="172htayio" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_03/devicetrue.thumb.png.5143448567e0d3de1e75afc88d7ce822.png"></a>
</p>

<p>
	Now we know it works, let's test the other trigger.
</p>

<p>
	And that too, works great!
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="24153" href="https://www.windows-noob.com/forums/uploads/monthly_2024_04/removeautopilotdevicesuccess.png.b6f2cbb5198ba272f2360e25083e12fe.png" rel=""><img alt="removeautopilotdevice success.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24153" data-ratio="73.60" data-unique="exmd3vr4a" width="1000" src="https://www.windows-noob.com/forums/uploads/monthly_2024_04/removeautopilotdevicesuccess.thumb.png.50c1f09717c744dbb28b15953a4067cb.png"></a>
</p>

<p>
	 
</p>

<p>
	That's it for part 1, see you in the <a href="https://www.windows-noob.com/forums/topic/23401-pc-buyback-for-windows-autopilot-devices-part-2/" rel="">part 2</a> where we'll create the Win32 app and test it !
</p>
]]></description><guid isPermaLink="false">23400</guid><pubDate>Sun, 31 Mar 2024 12:59:10 +0000</pubDate></item><item><title>Deploying KB5030310 to devices as a Win32 app for Copilot</title><link>https://www.windows-noob.com/forums/topic/23341-deploying-kb5030310-to-devices-as-a-win32-app-for-copilot/</link><description><![CDATA[<div class="entry-content">
	<h1>
		Introduction
	</h1>

	<p>
		In a <a href="https://www.niallbrady.com/2023/09/28/how-can-i-disable-copilot/" rel="external">previous blog post</a> I discussed how you can disable (or enable) Microsoft’s new flagship service called <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2023/09/21/announcing-microsoft-365-copilot-general-availability-and-microsoft-365-chat/" rel="external nofollow">Copilot</a>. Copilot is a very hot topic today as it gives the power of AI to all users of Windows.
	</p>

	<p>
		As it’s going to be included with Windows 11 version 23H2 coming later in Q4 you need to start testing it now. To test it you’ll probably want to have two groups of users, those where you’ve disabled Copilot and a smaller subset where you enable it. Based on my own testing, in order to automate <strong>enabling Copilot</strong> you need to have some things in place in your environment right now, and those requirements are listed below.
	</p>

	<ul>
		<li>
			Windows 11 version 22H2 <span style="color: #ff0000;">with <a href="https://www.catalog.update.microsoft.com/Search.aspx?q=KB5030310" style="color: #ff0000;" rel="external nofollow">KB5030310</a> installed</span>
		</li>
		<li>
			<span data-offset-key="3614r-0-0">Turn on the “Get the latest updates as soon as they are available” windows Update setting – see how <a href="https://www.niallbrady.com/2023/10/05/using-remediation-scripts-to-automate-a-setting-for-copilot/" rel="external">here</a></span>
		</li>
		<li>
			Locations needs to be North America, parts of Asia/South America regions only (for now)
		</li>
	</ul>

	<p>
		In this blog post I’ll focus on the point above highlighted in red, and we’ll solve the problem by creating a Win32 app in <a href="https://intune.microsoft.com" rel="external nofollow">Microsoft Intune</a>.
	</p>

	<h1>
		Download the required files
	</h1>

	<p>
		From Microsoft Catalog website, download the <a href="https://www.catalog.update.microsoft.com/Search.aspx?q=KB5030310" rel="external nofollow">2023-09 Cumulative Update Preview for Windows 11 Version 22H2 for x64-based Systems (KB5030310) .</a>
	</p>

	<h2>
		Scripts
	</h2>

	<p>
		There are two the scripts used in this package:
	</p>

	<p>
		<strong>install.cmd</strong>
	</p>

	<pre>wusa.exe .\windows11.0-kb5030310-x64_2b759815a3b7626cc8f508753553172aa444d454.msu /quiet /norestart -wait</pre>

	<p>
		<strong>check_for_KBKB5030310.ps1</strong>
	</p>

	<pre># niall brady 2023/10/04
# check if the KB is actually installed
#

$result = systeminfo.exe | findstr KB5030310

if ($result){
write-output "Found KB5030310"
exit 0}

else {
write-output "Could not find KB5030310"
exit 1}</pre>

	<h2>
		Microsoft Win32 Content Prep Tool
	</h2>

	<p>
		Get the tool here <a href="https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool" rel="external nofollow">https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool</a>.
	</p>

	<p>
		Create an icon for your package (optional)
	</p>

	<p>
		Using Google images/Bing images search for Windows Update and pick a graphic that matches what you want this to look like.
	</p>

	<h1>
		Create intunewin package
	</h1>

	<p>
		I use a folder layout as follows when creating Win32 apps.
	</p>

	<ul>
		<li>
			Win32app_name
			<ul>
				<li>
					Win32app_source
				</li>
				<li>
					Win32app_target
				</li>
			</ul>
		</li>
	</ul>

	<p>
		I place the <strong>Microsoft Win32 Content Prep Tool</strong> (IntuneWinAppUtil.exe) in the <strong>Win32app_name</strong> folder, along with any icon’s used for the app.
	</p>

	<p>
		<img alt="folder-layout.png" class="alignnone size-full wp-image-8723" data-ratio="41.30" decoding="async" fetchpriority="high" height="413" sizes="(max-width: 1062px) 100vw, 1062px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/folder-layout.png 1062w, https://www.niallbrady.com/wp-content/uploads/2023/10/folder-layout-300x117.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/folder-layout-768x299.png 768w" width="1062" src="https://www.niallbrady.com/wp-content/uploads/2023/10/folder-layout.png">
	</p>

	<p>
		Next I place the required files (in this case the downloaded MSU file, a PowerShell script and some <strong>batch</strong> files) into the Win32app_source folder.
	</p>

	<p>
		<img alt="win32app_source.png" class="alignnone size-full wp-image-8724" data-ratio="41.30" decoding="async" height="413" sizes="(max-width: 1062px) 100vw, 1062px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/win32app_source.png 1062w, https://www.niallbrady.com/wp-content/uploads/2023/10/win32app_source-300x117.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/win32app_source-768x299.png 768w" width="1062" src="https://www.niallbrady.com/wp-content/uploads/2023/10/win32app_source.png">
	</p>

	<p>
		Once all these are in place we can go ahead and create the <strong>intunewin</strong> package. You can see the settings I used in the output below.
	</p>

	<p>
		<img alt="creating-intunewin.png" class="alignnone size-full wp-image-8725" data-ratio="76.69" decoding="async" height="813" sizes="(max-width: 979px) 100vw, 979px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/creating-intunewin.png 979w, https://www.niallbrady.com/wp-content/uploads/2023/10/creating-intunewin-300x249.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/creating-intunewin-768x638.png 768w" width="979" src="https://www.niallbrady.com/wp-content/uploads/2023/10/creating-intunewin.png">
	</p>

	<p>
		The Intunewin file will end up in the <strong>win32app_target</strong> folder.
	</p>

	<p>
		<img alt="intunewin-target.png" class="alignnone size-full wp-image-8726" decoding="async" height="202" loading="lazy" sizes="(max-width: 1055px) 100vw, 1055px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/intunewin-target.png 1055w, https://www.niallbrady.com/wp-content/uploads/2023/10/intunewin-target-300x57.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/intunewin-target-768x147.png 768w" width="1055" src="https://www.niallbrady.com/wp-content/uploads/2023/10/intunewin-target.png">
	</p>

	<h1>
		Create the Win32 app
	</h1>

	<p>
		In Microsoft Intune, create a new Win32 app and give it a suitable name. Next, point it to the folder containing the previously created intunewin file.
	</p>

	<p>
		<img alt="app-package-file.png" class="alignnone size-full wp-image-8727" decoding="async" height="779" loading="lazy" sizes="(max-width: 1628px) 100vw, 1628px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/app-package-file.png 1628w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-package-file-300x144.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-package-file-768x367.png 768w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-package-file-1536x735.png 1536w" width="1628" src="https://www.niallbrady.com/wp-content/uploads/2023/10/app-package-file.png">
	</p>

	<p>
		Fill in some app information, and select your desired Logo if making the software available
	</p>

	<p>
		<img alt="app-information.png" class="alignnone size-full wp-image-8729" decoding="async" height="777" loading="lazy" sizes="(max-width: 826px) 100vw, 826px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/app-information.png 826w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-information-300x282.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-information-768x722.png 768w" width="826" src="https://www.niallbrady.com/wp-content/uploads/2023/10/app-information.png">
	</p>

	<p>
		enter your Program settings
	</p>

	<p>
		<img alt="program-settings.png" class="alignnone size-full wp-image-8730" decoding="async" height="608" loading="lazy" sizes="(max-width: 813px) 100vw, 813px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/program-settings.png 813w, https://www.niallbrady.com/wp-content/uploads/2023/10/program-settings-300x224.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/program-settings-768x574.png 768w" width="813" src="https://www.niallbrady.com/wp-content/uploads/2023/10/program-settings.png">
	</p>

	<p>
		On the <strong>App requirements</strong> screen make sure that <strong>Windows 11 version 22H2</strong> is selected
	</p>

	<p>
		<img alt="app-requirements.png" class="alignnone size-full wp-image-8731" decoding="async" height="466" loading="lazy" sizes="(max-width: 801px) 100vw, 801px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/app-requirements.png 801w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-requirements-300x175.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/app-requirements-768x447.png 768w" width="801" src="https://www.niallbrady.com/wp-content/uploads/2023/10/app-requirements.png">
	</p>

	<p>
		For detection rules point it to the included PowerShell script by clicking on <strong>Use a custom detection script</strong> and pointing the <strong>check_for_KB5030310.ps1</strong> PowerShell script in the <strong>win32app_source</strong> folder.
	</p>

	<p>
		<img alt="detection-rules.png" class="alignnone size-full wp-image-8732" decoding="async" height="453" loading="lazy" sizes="(max-width: 791px) 100vw, 791px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/detection-rules.png 791w, https://www.niallbrady.com/wp-content/uploads/2023/10/detection-rules-300x172.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/detection-rules-768x440.png 768w" width="791" src="https://www.niallbrady.com/wp-content/uploads/2023/10/detection-rules.png">
	</p>

	<p>
		Continue through the wizard and assign is as appropriate to your target Windows 11 version 22H2 devices that you want brought up to build 2361.
	</p>

	<p>
		<img alt="required-assignment.png" class="alignnone size-full wp-image-8734" decoding="async" height="306" loading="lazy" sizes="(max-width: 1601px) 100vw, 1601px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/required-assignment.png 1601w, https://www.niallbrady.com/wp-content/uploads/2023/10/required-assignment-300x57.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/required-assignment-768x147.png 768w, https://www.niallbrady.com/wp-content/uploads/2023/10/required-assignment-1536x294.png 1536w" width="1601" src="https://www.niallbrady.com/wp-content/uploads/2023/10/required-assignment.png">
	</p>

	<p>
		 
	</p>

	<p>
		After creating the app, you can later monitor it’s progress.
	</p>

	<p>
		<img alt="monitor-the-installation.png" class="alignnone size-full wp-image-8738" data-ratio="39.00" decoding="async" height="424" loading="lazy" sizes="(max-width: 1632px) 100vw, 1632px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/monitor-the-installation.png 1632w, https://www.niallbrady.com/wp-content/uploads/2023/10/monitor-the-installation-300x78.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/monitor-the-installation-768x200.png 768w, https://www.niallbrady.com/wp-content/uploads/2023/10/monitor-the-installation-1536x399.png 1536w" width="1632" src="https://www.niallbrady.com/wp-content/uploads/2023/10/monitor-the-installation.png">
	</p>

	<p>
		Job done !
	</p>

	<h1>
		Related reading
	</h1>

	<ul>
		<li>
			<a href="https://www.microsoft.com/en-us/microsoft-365/blog/2023/09/21/announcing-microsoft-365-copilot-general-availability-and-microsoft-365-chat/" rel="external nofollow">Copilot released to GA</a>
		</li>
		<li>
			<a href="https://www.niallbrady.com/2023/09/28/how-can-i-disable-copilot/" rel="external">How can I disable (or enable) Copilot</a>
		</li>
		<li>
			<a href="https://www.niallbrady.com/2023/10/05/using-remediation-scripts-to-automate-a-setting-for-copilot/" rel="external">Using remediation scripts to automate a setting for Copilot</a>
		</li>
		<li>
			<a href="https://learn.microsoft.com/en-us/mem/intune/fundamentals/remediations" rel="external nofollow">Remediations | Microsoft Learn</a>
		</li>
		<li>
			<a href="https://support.microsoft.com/en-us/windows/get-windows-updates-as-soon-as-they-re-available-for-your-device-cad7b32b-001e-435b-9110-f18309b54168" rel="external nofollow">Get Windows Updates as soon as they are available</a>
		</li>
	</ul>

	<p>
		see you in the next one
	</p>

	<p>
		cheers
	</p>

	<p>
		niall.
	</p>
</div>
]]></description><guid isPermaLink="false">23341</guid><pubDate>Sun, 15 Oct 2023 13:37:14 +0000</pubDate></item><item><title>Using remediation scripts to automate a setting for Copilot</title><link>https://www.windows-noob.com/forums/topic/23340-using-remediation-scripts-to-automate-a-setting-for-copilot/</link><description><![CDATA[<div class="entry-content">
	<h1>
		Introduction
	</h1>

	<p>
		In a <a href="https://www.niallbrady.com/2023/09/28/how-can-i-disable-copilot/" rel="external">previous blog post</a> I discussed how you can disable (or enable) Microsoft’s new flagship service called <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2023/09/21/announcing-microsoft-365-copilot-general-availability-and-microsoft-365-chat/" rel="external nofollow">Copilot</a>. Copilot is a very hot topic today as it gives the power of AI to all users of Windows.
	</p>

	<p>
		As it’s going to be included with Windows 11 version 23H2 coming later in Q4 you need to start testing it now. To test it you’ll probably want to have two groups of users, those where you’ve disabled Copilot and a smaller subset where you enable it. Based on my own testing, in order to automate <strong>enabling Copilot</strong> you need to have some things in place in your environment right now, and those requirements are listed below.
	</p>

	<ul>
		<li>
			Windows 11 version 22H2 with <a href="https://www.catalog.update.microsoft.com/Search.aspx?q=KB5030310" rel="external nofollow">KB5030310</a> installed
		</li>
		<li>
			<span data-offset-key="3614r-0-0" style="color: #ff0000;">Turn on the “Get the latest updates as soon as they are available” windows Update setting</span>
		</li>
		<li>
			Locations needs to be North America, parts of Asia/South America regions only (for now)
		</li>
	</ul>

	<p>
		In this blog post I’ll focus on the second point above highlighted <span style="color: #ff0000;">in red</span>, and we’ll solve the problem by using the <a href="https://learn.microsoft.com/en-us/mem/intune/fundamentals/remediations" rel="external nofollow"><strong>remediation scripts</strong></a> ability in <a href="https://intune.microsoft.com" rel="external nofollow">Microsoft Intune</a>. You can do this other ways, there’s a <a href="https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-update#allowoptionalcontent" rel="external nofollow">CSP listed here</a> that probably does the same thing, I’ll test that and update here as appropriate.
	</p>

	<pre class="has-inner-focus"><code class="lang-Device" data-author-content="./Device/Vendor/MSFT/Policy/Config/Update/AllowOptionalContent ">./Device/Vendor/MSFT/Policy/Config/Update/AllowOptionalContent
</code></pre>

	<p>
		Keep in mind though the text below:
	</p>

	<p>
		<em>This policy enables devices to get optional updates (including gradual feature rollouts (CFRs) – learn more by visiting aka.ms/AllowOptionalContent). <strong>This CSP contains some settings that are under development and only applicable for <a data-linktype="absolute-path" href="https://learn.microsoft.com/en-us/windows-insider/" rel="external nofollow">Windows Insider Preview builds</a>.</strong> These settings are subject to change and may have dependencies on other features or services in preview.</em>
	</p>

	<p>
		What we need to automate is flipping the switch shown below from Off to On. The switch is for: <strong>Get the latest updates as soon as they’re available</strong> so that it downloads things like Copilot preview bits from Windows Update.
	</p>

	<p>
		<img alt="turn-on-this-setting.png" class="alignnone size-full wp-image-8696" data-ratio="71.70" decoding="async" fetchpriority="high" height="717" sizes="(max-width: 1019px) 100vw, 1019px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/turn-on-this-setting.png 1019w, https://www.niallbrady.com/wp-content/uploads/2023/10/turn-on-this-setting-300x211.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/turn-on-this-setting-768x540.png 768w" width="1019" src="https://www.niallbrady.com/wp-content/uploads/2023/10/turn-on-this-setting.png">
	</p>

	<p>
		This actually sets a registry value to 1 when flipped to <strong>On</strong> and that’s how we’ll solve it.
	</p>

	<p>
		<b class="ocpNote">Note: </b>Whether you set the toggle to <b class="ocpUI">Off </b>or <b class="ocpUI">On</b>, you’ll still get the regular security updates as usual. The toggle determines how quickly you get the additional non-security updates, fixes, feature updates, and improvements
	</p>

	<h1>
		Download the scripts
	</h1>

	<p>
		The scripts used in this blog post are available here, unzip before use. There are 2 scripts in the zip file, one for <strong>detection</strong>, and another for <strong>remediation</strong>.
	</p>

	<p>
		<a href="https://www.niallbrady.com/wp-content/uploads/2023/10/copilot-ux-registry-key.zip" rel="external">copilot ux registry key</a>
	</p>

	<h1>
		Create the remediation
	</h1>

	<p>
		As an Intune admin, navigate to <strong>Devices</strong>, select <strong>Windows</strong>, select <strong>Scripts</strong>, ensure you are in <strong>Remediations</strong> and click on <strong>+ Create</strong> to create a new remediation.
	</p>

	<p>
		<img alt="navigate-here.png" class="alignnone size-full wp-image-8695" data-ratio="54.90" decoding="async" height="543" sizes="(max-width: 989px) 100vw, 989px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/navigate-here.png 989w, https://www.niallbrady.com/wp-content/uploads/2023/10/navigate-here-300x165.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/navigate-here-768x422.png 768w" width="989" src="https://www.niallbrady.com/wp-content/uploads/2023/10/navigate-here.png">
	</p>

	<p>
		Give the remediation a useful name such as <strong>Turn ON – Get the latest updates as soon as they’re available</strong>
	</p>

	<p>
		<img alt="name-the-remediation-1.png" class="alignnone size-full wp-image-8701" data-ratio="46.62" decoding="async" height="366" sizes="(max-width: 785px) 100vw, 785px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/name-the-remediation-1.png 785w, https://www.niallbrady.com/wp-content/uploads/2023/10/name-the-remediation-1-300x140.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/name-the-remediation-1-768x358.png 768w" width="785" src="https://www.niallbrady.com/wp-content/uploads/2023/10/name-the-remediation-1.png">
	</p>

	<p>
		Click next and add the scripts in the highlighted sections here:
	</p>

	<p>
		<img alt="add-scripts-here.png" class="alignnone size-full wp-image-8702" decoding="async" height="561" loading="lazy" sizes="(max-width: 785px) 100vw, 785px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/add-scripts-here.png 785w, https://www.niallbrady.com/wp-content/uploads/2023/10/add-scripts-here-300x214.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/add-scripts-here-768x549.png 768w" width="785" src="https://www.niallbrady.com/wp-content/uploads/2023/10/add-scripts-here.png">
	</p>

	<p>
		so that it looks like so, make sure to select <strong>Yes</strong> for <strong>Run script in 64-bit PowerShell</strong>
	</p>

	<p>
		<img alt="run-script-in-64-bit-PowerShell.png" class="alignnone size-full wp-image-8703" decoding="async" height="635" loading="lazy" sizes="(max-width: 785px) 100vw, 785px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/run-script-in-64-bit-PowerShell.png 785w, https://www.niallbrady.com/wp-content/uploads/2023/10/run-script-in-64-bit-PowerShell-300x243.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/run-script-in-64-bit-PowerShell-768x621.png 768w" width="785" src="https://www.niallbrady.com/wp-content/uploads/2023/10/run-script-in-64-bit-PowerShell.png">
	</p>

	<p>
		Click through the wizard and select an appropriate <strong>Assignment group</strong> and schedule. In the example below I previously created a dynamic Azure AD group called called <strong>All Windows 11 version 22H2 build 2361</strong> based on <strong>OSVersion = Version 10.0.22621.2361</strong>. I also set the <strong>schedule</strong> to run <strong>hourly</strong>, but you can set it any way you wish.
	</p>

	<p>
		Note that this specific version of Windows 11 is only necessary to test Copilot today as this ability will be native to Windows 11 version 23H2 later in Q4.
	</p>

	<p>
		<img alt="assignment-group-and-schedule.png" class="alignnone size-full wp-image-8704" decoding="async" height="570" loading="lazy" sizes="(max-width: 651px) 100vw, 651px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/assignment-group-and-schedule.png 651w, https://www.niallbrady.com/wp-content/uploads/2023/10/assignment-group-and-schedule-300x263.png 300w" width="651" src="https://www.niallbrady.com/wp-content/uploads/2023/10/assignment-group-and-schedule.png">
	</p>

	<p>
		Click <strong>Create</strong> once done. Next you wait, and review the status after it’s reached your target devices.
	</p>

	<h1>
		Monitor the remediation
	</h1>

	<p>
		In the <strong>Device Status</strong> section of your newly created remediation, you should see the status of all devices targeted by the remediation. Note that it does take some time before this data flows back up to Intune.
	</p>

	<p>
		<img alt="issue-fixed.png" class="alignnone size-full wp-image-8716" decoding="async" height="288" loading="lazy" sizes="(max-width: 1545px) 100vw, 1545px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/issue-fixed.png 1545w, https://www.niallbrady.com/wp-content/uploads/2023/10/issue-fixed-300x56.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/issue-fixed-768x143.png 768w, https://www.niallbrady.com/wp-content/uploads/2023/10/issue-fixed-1536x286.png 1536w" width="1545" src="https://www.niallbrady.com/wp-content/uploads/2023/10/issue-fixed.png">
	</p>

	<p>
		and afte running again it’ll change <strong>Detection status</strong> to <strong>Without issues</strong>.
	</p>

	<p>
		<img alt="without-issues.png" class="alignnone size-full wp-image-8720" decoding="async" height="288" loading="lazy" sizes="(max-width: 1632px) 100vw, 1632px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/without-issues.png 1632w, https://www.niallbrady.com/wp-content/uploads/2023/10/without-issues-300x53.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/without-issues-768x136.png 768w, https://www.niallbrady.com/wp-content/uploads/2023/10/without-issues-1536x271.png 1536w" width="1632" src="https://www.niallbrady.com/wp-content/uploads/2023/10/without-issues.png">
	</p>

	<h1>
		Verify on target devices
	</h1>

	<p>
		On a device targeted with this policy, you can review the logs created by the remediation scripts for troubleshooting, they’ll be placed in the following folder:
	</p>

	<pre> C:\ProgramData\IntuneRemediations\Copilot</pre>

	<p>
		<img alt="remediation-logs.png" class="alignnone size-full wp-image-8707" decoding="async" height="768" loading="lazy" sizes="(max-width: 1023px) 100vw, 1023px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/remediation-logs.png 1023w, https://www.niallbrady.com/wp-content/uploads/2023/10/remediation-logs-300x225.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/remediation-logs-768x577.png 768w" width="1023" src="https://www.niallbrady.com/wp-content/uploads/2023/10/remediation-logs.png">
	</p>

	<p>
		Next, verify that the Windows Update setting is indeed turned on:
	</p>

	<p>
		<img alt="turned-on.png" class="alignnone size-full wp-image-8708" decoding="async" height="286" loading="lazy" sizes="(max-width: 712px) 100vw, 712px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/turned-on.png 712w, https://www.niallbrady.com/wp-content/uploads/2023/10/turned-on-300x121.png 300w" width="712" src="https://www.niallbrady.com/wp-content/uploads/2023/10/turned-on.png">
	</p>

	<p>
		and finally, you can review the registry key that it enables, in HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings
	</p>

	<p>
		<strong>IsContinuousInnovationOptedIn</strong> = 1
	</p>

	<p>
		<img alt="registry-key-set.png" class="alignnone size-full wp-image-8709" decoding="async" height="233" loading="lazy" sizes="(max-width: 912px) 100vw, 912px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/registry-key-set.png 912w, https://www.niallbrady.com/wp-content/uploads/2023/10/registry-key-set-300x77.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/registry-key-set-768x196.png 768w" width="912" src="https://www.niallbrady.com/wp-content/uploads/2023/10/registry-key-set.png">
	</p>

	<p>
		and of course after this setting is set it will auto download the Copilot bits
	</p>

	<p>
		<img alt="kb5030509.png" class="alignnone size-full wp-image-8745" decoding="async" height="251" loading="lazy" sizes="(max-width: 566px) 100vw, 566px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/kb5030509.png 566w, https://www.niallbrady.com/wp-content/uploads/2023/10/kb5030509-300x133.png 300w" width="566" src="https://www.niallbrady.com/wp-content/uploads/2023/10/kb5030509.png">
	</p>

	<p>
		So once the required KB’s are installed (<a href="https://www.niallbrady.com/2023/10/05/deploying-kb5030310-to-devices-as-a-win32-app-for-copilot/" rel="external">KB5030310</a> + KB5030509) and after restarting the targeted device, Copilot is enabled !
	</p>

	<p>
		<img alt="niall-copilot.png" class="alignnone size-full wp-image-8710" data-ratio="75.08" decoding="async" height="768" loading="lazy" sizes="(max-width: 1024px) 100vw, 1024px" srcset="https://www.niallbrady.com/wp-content/uploads/2023/10/niall-copilot.png 1024w, https://www.niallbrady.com/wp-content/uploads/2023/10/niall-copilot-300x225.png 300w, https://www.niallbrady.com/wp-content/uploads/2023/10/niall-copilot-768x576.png 768w" width="1024" src="https://www.niallbrady.com/wp-content/uploads/2023/10/niall-copilot.png">
	</p>

	<p>
		job done !
	</p>

	<h1>
		Related reading
	</h1>

	<ul>
		<li>
			<a href="https://www.microsoft.com/en-us/microsoft-365/blog/2023/09/21/announcing-microsoft-365-copilot-general-availability-and-microsoft-365-chat/" rel="external nofollow">Copilot released to GA</a>
		</li>
		<li>
			<a href="https://www.niallbrady.com/2023/09/28/how-can-i-disable-copilot/" rel="external">How can I disable (or enable) Copilot</a>
		</li>
		<li>
			<a href="https://learn.microsoft.com/en-us/mem/intune/fundamentals/remediations" rel="external nofollow">Remediations | Microsoft Learn</a>
		</li>
		<li>
			<a href="https://support.microsoft.com/en-us/windows/get-windows-updates-as-soon-as-they-re-available-for-your-device-cad7b32b-001e-435b-9110-f18309b54168" rel="external nofollow">Get Windows Updates as soon as they are available</a>
		</li>
	</ul>

	<p>
		see you in the next one
	</p>

	<p>
		cheers
	</p>

	<p>
		niall.
	</p>
</div>
]]></description><guid isPermaLink="false">23340</guid><pubDate>Sun, 15 Oct 2023 13:36:19 +0000</pubDate></item></channel></rss>
