<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Step by Step Guides on justinverstijnen.nl</title><link>https://justinverstijnen.nl/tags/step-by-step-guides/</link><description>Recent content in Step by Step Guides on justinverstijnen.nl</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 18 Apr 2026 14:32:09 +0200</lastBuildDate><atom:link href="https://justinverstijnen.nl/tags/step-by-step-guides/index.xml" rel="self" type="application/rss+xml"/><item><title>Microsoft Secure Score - Apps</title><link>https://justinverstijnen.nl/microsoft-secure-score-apps/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-secure-score-apps/</guid><description>&lt;h2 id="before-we-begin"&gt;Before we begin&lt;a class="td-heading-self-link" href="#before-we-begin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I collected all the options of the Microsoft Secure Score for Apps on this page, and we I address them all. I also added some industry-accepted options which are not in the secure score framework but are really helpful in avoiding or minimizing attacks in your environment. You can use all options, or only a subset. The more of the options you implement, the higher your score.&lt;/p&gt;</description></item><item><title>Microsoft Secure Score - Devices</title><link>https://justinverstijnen.nl/microsoft-secure-score-devices/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-secure-score-devices/</guid><description>&lt;h2 id="before-we-begin"&gt;Before we begin&lt;a class="td-heading-self-link" href="#before-we-begin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I collected all the options of the Microsoft Device Secure Score on this page, and we will address them all. I also added some industry-accepted options which are not in the secure score framework but are really helpful in avoiding or minimizing attacks in your environment.&lt;/p&gt;
&lt;p&gt;You can use all options, or only use a subset of the options. This is up to you :)&lt;/p&gt;</description></item><item><title>Update your Kerberos configuration with Azure Virtual Desktop (RC4)</title><link>https://justinverstijnen.nl/update-your-kerberos-configuration-with-azure-virtual-desktop-rc4/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/update-your-kerberos-configuration-with-azure-virtual-desktop-rc4/</guid><description>&lt;p&gt;Microsoft released that the Kerberos protocol will be hardened by an update coming in April to June 2026 to increase security. This was released by Microsoft here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://techcommunity.microsoft.com/blog/fslogix-blog/action-required-windows-kerberos-hardening-rc4-may-affect-fslogix-profiles-on-sm/4506378"&gt;https://techcommunity.microsoft.com/blog/fslogix-blog/action-required-windows-kerberos-hardening-rc4-may-affect-fslogix-profiles-on-sm/4506378&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At first, they are not very specific about how to check what Kerberos encryption your environment uses and how to solve this before becoming a problem. I will do my best to explain this and show you how to solve it.&lt;/p&gt;
&lt;p&gt;Microsoft already introduced Kerberos-related hardening changes in updates released since November 2022, which significantly reduced RC4 usage in many environments. However, administrators should still verify whether specific accounts, services or devices are explicitly or implicitly relying on RC4 before disabling it. In this guide, I will explain to you how to do this.&lt;/p&gt;</description></item><item><title>Getting started with Microsoft 365 Backup</title><link>https://justinverstijnen.nl/getting-started-with-microsoft-365-backup/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/getting-started-with-microsoft-365-backup/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A Microsoft 365 environment with Global Administrator permissions&lt;/li&gt;
&lt;li&gt;An Azure Subscription with PAYG capabilities&lt;/li&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;Basic knowledge of Microsoft 365&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-microsoft-365-backup"&gt;What is Microsoft 365 Backup?&lt;a class="td-heading-self-link" href="#what-is-microsoft-365-backup" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Microsoft 365 Backup is an integrated solution of Microsoft to backup Microsoft 365 items. This applies to these items:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Exchange Mailboxes&lt;/li&gt;
&lt;li&gt;OneDrive accounts&lt;/li&gt;
&lt;li&gt;SharePoint sites/Teams&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Microsoft 365 Backup can be used to extend the retention period of certain data. By default, spaces like SharePoint sites have a retention of 93 days if you count the recycle bin and versioning. But this is not really a backup, only some techniques to quicky restore a single file or folder. This doesn&amp;rsquo;t include things like permissions, which Microsoft 365 Backup does.&lt;/p&gt;</description></item><item><title>Microsoft Secure Score - Identity</title><link>https://justinverstijnen.nl/microsoft-secure-score-identity/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-secure-score-identity/</guid><description>&lt;p&gt;On this page, I will describe how I implemented my current Microsoft Secure Score on the Identity pillar. This means altering mostly the options of Microsoft Entra ID.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="before-we-begin"&gt;Before we begin&lt;a class="td-heading-self-link" href="#before-we-begin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I collected all the options of the Microsoft Entra ID Identity Secure Score on this page, and we will address them all. I also added some industry-accepted options which are not in the secure score framework but are really helpful in avoiding or minimizing attacks in your environment.&lt;/p&gt;</description></item><item><title>I tested Azure Virtual Desktop RemoteAppV2</title><link>https://justinverstijnen.nl/azure-virtual-desktop-remoteappv2/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/azure-virtual-desktop-remoteappv2/</guid><description>&lt;p&gt;Microsoft announced RemoteAppV2 under some pretty enhancements on top of the older RemoteApp engine. This newer version has some improvements like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better multi monitor support&lt;/li&gt;
&lt;li&gt;Better resizing/window experience&lt;/li&gt;
&lt;li&gt;Visuals like window shadows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I cannot really show this in pictures, but if you test V2 alongside V1, you definitely notice these small visual enhancements. However, a wanted feature called &amp;ldquo;drag-and-drop&amp;rdquo; is still not possible on V2.&lt;/p&gt;
&lt;p&gt;Source: &lt;a href="https://learn.microsoft.com/en-us/azure/virtual-desktop/remoteapp-enhancements"&gt;https://learn.microsoft.com/en-us/azure/virtual-desktop/remoteapp-enhancements&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="how-to-enable-remoteappv2"&gt;How to enable RemoteAppV2&lt;a class="td-heading-self-link" href="#how-to-enable-remoteappv2" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To enable RemoteAppV2, you need to set a registry key as long as the preview is running. Make sure you are compliant with the requirements as described on this page (client + hosts):&lt;/p&gt;</description></item><item><title>Getting started with GitHub Pages</title><link>https://justinverstijnen.nl/getting-started-with-github-pages/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/getting-started-with-github-pages/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A GitHub account (free)&lt;/li&gt;
&lt;li&gt;A domain name for your website, or you can use the default domain name of GitHub
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;youraccount.github.io&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A template website to upload to your domain name&lt;/li&gt;
&lt;li&gt;Some basic knowledge about websites and DNS&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-github-pages"&gt;What is GitHub Pages?&lt;a class="td-heading-self-link" href="#what-is-github-pages" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GitHub Pages allows you to host a static website directly from a GitHub repository. This can be done without managing a server, infrastructure, or hosting provider. The only thing you do is create a repository, upload a website, and optionally connect it to a domain name of your choice. We can compare this to Azure Static Web Apps if you are familiar with that.&lt;/p&gt;</description></item><item><title>Azure Virtual Desktop V6/V7 VMs imaging</title><link>https://justinverstijnen.nl/azure-virtual-desktop-v6-v7-vms-imaging/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/azure-virtual-desktop-v6-v7-vms-imaging/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;em&gt;The VM size &amp;lsquo;Standard_E4as_v7&amp;rsquo; cannot boot with OS image or disk. Please check that disk controller types supported by the OS image or disk is one of the supported disk controller types for the VM size &amp;lsquo;Standard_E4as_v7&amp;rsquo;. Please query sku api at &lt;a href="https://aka.ms/azure-compute-skus"&gt;https://aka.ms/azure-compute-skus&lt;/a&gt; to determine supported disk controller types for the VM size. (Code: InvalidParameter)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;This size is not available because it does not support the SCSI disk controller type.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because I really wanted to use higher version VMs, I went to research on how to solve this problem. I will describe the process from creating the initial imaging VM, to capture and installing new AVD hosts with our new image.&lt;/p&gt;</description></item><item><title>Get notifications when Entra ID break glass admins are used</title><link>https://justinverstijnen.nl/get-notifications-when-entra-id-break-glass-admins-are-used/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/get-notifications-when-entra-id-break-glass-admins-are-used/</guid><description>&lt;h2 id="the-alert-solution-described"&gt;The alert solution described&lt;a class="td-heading-self-link" href="#the-alert-solution-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The solution we will configure looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Log Analytics Workspace&lt;/li&gt;
&lt;li&gt;Set diagnostic settings for Entra ID sign in logs to write to Log Analytics&lt;/li&gt;
&lt;li&gt;Set query to find successful or non-succesful sign in attempts (based on your needs)&lt;/li&gt;
&lt;li&gt;Set Azure Monitor alert to alert admins of the attempts taking place&lt;/li&gt;
&lt;li&gt;After all this we will test this to test if this works as excpected&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here we use all the features inside Azure only, and no 3rd party solutions.&lt;/p&gt;</description></item><item><title>Create HTTPS 301 redirects with Azure Front Door</title><link>https://justinverstijnen.nl/create-https-301-redirects-with-azure-front-door/</link><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/create-https-301-redirects-with-azure-front-door/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For this solution, you need the following stuff:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An Azure Subscription&lt;/li&gt;
&lt;li&gt;A domain name or multiple domain names, which may also be subdomains (subdomain.domain.com)&lt;/li&gt;
&lt;li&gt;Some HTTPS knowledge&lt;/li&gt;
&lt;li&gt;Some Azure knowledge&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-solution-explained"&gt;The solution explained&lt;a class="td-heading-self-link" href="#the-solution-explained" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I will explain how I have made the shortcuts to my tools at &lt;a href="https://justinverstijnen.nl/tools"&gt;https://justinverstijnen.nl/tools&lt;/a&gt;, as this is something what Azure Front Door can do for you.&lt;/p&gt;
&lt;p&gt;In short, Azure Front Door is a load balancer/CDN application with a lot of load balancing options to distribute load onto your backend. In this guide we will use a simple part, only redirecting traffic using 301 rules, but if interested, its a very nice application.&lt;/p&gt;</description></item><item><title>Everything you need to know about Azure Bastion</title><link>https://justinverstijnen.nl/everything-you-need-to-know-about-azure-bastion/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/everything-you-need-to-know-about-azure-bastion/</guid><description>&lt;h2 id="how-does-azure-bastion-work"&gt;How does Azure Bastion work?&lt;a class="td-heading-self-link" href="#how-does-azure-bastion-work" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Azure Bastion is a serverless instance you deploy in your Azure virtual network. It resides there waiting for users to connect with it. It acts like a Jump-server, a secured server from where an administrative user connects to another server.&lt;/p&gt;
&lt;p&gt;The process of it looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/everything-you-need-to-know-about-azure-bastion-3240/jv-media-3240-f0747dc2cc22.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;A user can choose to connect from the Azure Portal to Azure Bastion and from there to the destination server or use a native client, which can be:&lt;/p&gt;</description></item><item><title>Upload multiple Github repositories into a single Azure Static Web App</title><link>https://justinverstijnen.nl/upload-multiple-github-repositories-into-a-single-azure-static-web-app/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/upload-multiple-github-repositories-into-a-single-azure-static-web-app/</guid><description>&lt;p&gt;In this guide, I will describe how I now host multiple Github applications/tools into one single Static Web App environment in Azure. This mostly captures the simple, single task, tools which can be found on my website:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://justinverstijnen.nl/tools"&gt;https://justinverstijnen.nl/tools&lt;/a&gt; or &lt;a href="https://jvapp.nl"&gt;jvapp.nl&lt;/a&gt; if you need a shortcut.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because I started with a single tool, then built another and another and another one, I needed a sort of scalable way of doing this. Each tool means doing the following stuff:&lt;/p&gt;</description></item><item><title>What is MTA-STS and how to use it to protect your email flow</title><link>https://justinverstijnen.nl/what-is-mta-sts-and-how-to-protect-your-email-flow/</link><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/what-is-mta-sts-and-how-to-protect-your-email-flow/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;Access to your domains&amp;rsquo; DNS hosting to create DNS records&lt;/li&gt;
&lt;li&gt;An Azure Subscription if you want to publish your policy with a Static Web App
&lt;ul&gt;
&lt;li&gt;A Github account if you use this option&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;An Azure Subscription if you want to publish your policy with a Function App&lt;/li&gt;
&lt;li&gt;Basic knowledge of DNS records&lt;/li&gt;
&lt;li&gt;Basic knowledge of Email security&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="mta-sts-versus-smtp-dane"&gt;MTA-STS versus SMTP DANE&lt;a class="td-heading-self-link" href="#mta-sts-versus-smtp-dane" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;MTA-STS overlaps with the &lt;a href="https://justinverstijnen.nl/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365/"&gt;newer SMTP DANE&lt;/a&gt; option, and they both help securing your email flow but each in its own manner. Some differences:&lt;/p&gt;</description></item><item><title>Remove Microsoft Print to PDF and OneNote printers script</title><link>https://justinverstijnen.nl/remove-microsoft-print-to-pdf-and-onenote-printers-script/</link><pubDate>Mon, 29 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/remove-microsoft-print-to-pdf-and-onenote-printers-script/</guid><description>&lt;p&gt;By default in Windows 11 with Microsoft 365 apps installed, we have two software printers installed. These are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OneNote (Desktop)&lt;/li&gt;
&lt;li&gt;Microsoft Print to PDF&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/remove-microsoft-print-to-pdf-and-onenote-printers-script-4319/jv-media-4319-5e8079ca2ffa.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;However, some users don&amp;rsquo;t use them and they will annoyingly be as default printer sometimes, which we want to avoid. Most software have built-in options to save to PDF, so this is a bit redundant. Our real printers will be further down which causes their own problems for end users.&lt;/p&gt;</description></item><item><title>Automatically start Windows App at startup</title><link>https://justinverstijnen.nl/automatically-start-windows-app-at-startup/</link><pubDate>Thu, 25 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/automatically-start-windows-app-at-startup/</guid><description>&lt;h2 id="creating-the-intune-script"&gt;Creating the Intune script&lt;a class="td-heading-self-link" href="#creating-the-intune-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We can achieve this with Intune using a PowerShell script. As Intune doesn&amp;rsquo;t support login/startup scripts, we have to create a Platform script that creates a Scheduled Task in Windows for us. This is a great way, as this is visible at the client side and can be disabled pretty easily.&lt;/p&gt;
&lt;p&gt;To create this task/script, go to the Intune Admin center: &lt;a href="https://intune.microsoft.com"&gt;https://intune.microsoft.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Go to Devices -&amp;gt; Windows -&amp;gt; Scripts and remediations, then open the tab &amp;ldquo;Platform scripts&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Azure Virtual Desktop FSLogix and Native Kerberos authentication</title><link>https://justinverstijnen.nl/azure-virtual-desktop-fslogix-and-native-kerberos-authentication/</link><pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/azure-virtual-desktop-fslogix-and-native-kerberos-authentication/</guid><description>&lt;p&gt;In this guide I will dive into how I configured an simple environment where I placed every configuration action in separate steps to keep it simple and clear to follow and also will give some describing information about some concepts and settings.&lt;/p&gt;
&lt;p&gt;I also added some optional steps for a better configuration and security than this guide already provides for a better user experience and more security.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-solution-described"&gt;The solution described&lt;a class="td-heading-self-link" href="#the-solution-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The day has finally come; we can now build a Azure Virtual Desktop (AVD) hostpool in pooled configuration without having to host an Active Directory, and/or having to host an unsecured storage account by &lt;a href="https://justinverstijnen.nl/pooled-azure-virtual-desktop-with-azure-ad-users/"&gt;having to inject the Storage Access Key into the machines&amp;rsquo; registry&lt;/a&gt;. This newer setup enhances performance and security on those points.&lt;/p&gt;</description></item><item><title>FSLogix and maximum Azure Files security</title><link>https://justinverstijnen.nl/fslogix-and-maximum-azure-files-security/</link><pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/fslogix-and-maximum-azure-files-security/</guid><description>&lt;h2 id="the-maximum-security-preset-in-the-azure-portal"&gt;The Maximum Security preset in the Azure Portal&lt;a class="td-heading-self-link" href="#the-maximum-security-preset-in-the-azure-portal" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We can also run the SMB security on the Maximum security preset in the Azure Portal and still run FSLogix without problems. In the Azure Portal, go to the storage account and set the security of the File share to &amp;ldquo;Maximum security&amp;rdquo;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/azure-virtual-desktop-fslogix-and-native-kerberos-authentication-5828/jv-media-5828-ecc337dcb41b.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;This will only allow the AES_256_GCM SMB Channel encryption, but Windows 11 defaults to the 128 version only. We now have to tell Windows to use the better secured 256 version instead, otherwise the storage account blocks your requests and logging in isn&amp;rsquo;t possible. I will do this through Intune, but you could do this with Group Policy in the same manner or with PowerShell.&lt;/p&gt;</description></item><item><title>Deploy Google Chrome Single Sign On with Intune</title><link>https://justinverstijnen.nl/deploy-google-chrome-single-sign-on-with-intune/</link><pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/deploy-google-chrome-single-sign-on-with-intune/</guid><description>&lt;h2 id="how-the-extension-works"&gt;How the extension works&lt;a class="td-heading-self-link" href="#how-the-extension-works" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Microsoft SSO extension for Google Chrome uses the same token/session you already have when you have your device Entra ID joined. It will send that to every Microsoft Online webpage to show you are already authenticated and have a valid token. This makes the user experience a lot better as they don&amp;rsquo;t have to authenticate first before starting to use the web applications.&lt;/p&gt;</description></item><item><title>Disable users' self service license trials</title><link>https://justinverstijnen.nl/disable-users-self-service-license-trials/</link><pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/disable-users-self-service-license-trials/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/disable-users-self-service-license-trials-5454/jv-media-5454-b2e8595ef8fb.png" alt=""&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="why-should-you-disable-trial-licenses"&gt;Why should you disable trial licenses?&lt;a class="td-heading-self-link" href="#why-should-you-disable-trial-licenses" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can disable self service trial licenses if you want to avoid users to use un-accepted apps. This could result in shadow-it happening in your environment.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s say, your company uses Zoom to call with each other, and users are starting to use Microsoft Teams. Teams then is an application not accepted by your organization and users then should not be able to use it. If you give them the possibility, they will. This all of course assuming you don&amp;rsquo;t have paid licenses for Microsoft Teams.&lt;/p&gt;</description></item><item><title>ARM templates and Azure VM + Script deployment</title><link>https://justinverstijnen.nl/arm-templates-and-azure-vm-script-deployment/</link><pubDate>Thu, 20 Nov 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/arm-templates-and-azure-vm-script-deployment/</guid><description>&lt;p&gt;In this post I will show some examples of deploying with ARM templates and also will show you how to deploy a PowerShell script to run directly after the deployment of an virtual machine. This further helps automating your tasks.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription to deploy resources (if wanting to follow the guide)&lt;/li&gt;
&lt;li&gt;A Github account, Azure Storage account or other hosting option to publish Powershell scripts to URL&lt;/li&gt;
&lt;li&gt;Basic knowledge of Azure&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-arm"&gt;What is ARM?&lt;a class="td-heading-self-link" href="#what-is-arm" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ARM stands for Azure Resource Manager and is the underlying API for everything you deploy, change and manage in the Azure Portal, Azure PowerShell and Azure CLI. A basic understanding of ARM is in this picture:&lt;/p&gt;</description></item><item><title>Disable Windows Taskbar Widgets through Intune</title><link>https://justinverstijnen.nl/disable-windows-taskbar-widgets-through-intune/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/disable-windows-taskbar-widgets-through-intune/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/disable-windows-taskbar-widgets-through-intune-5551/jv-media-5551-0e5b331ce973.png" alt=""&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="method-1-settings-catalog"&gt;Method 1: Settings Catalog&lt;a class="td-heading-self-link" href="#method-1-settings-catalog" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The easiest way to disable these widgets is through a Settings Catalog policy. Open up Microsoft Intune admin center and create a new policy through the Settings Catalog.&lt;/p&gt;
&lt;p&gt;Search for &amp;ldquo;widget&amp;rdquo; and these options are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;News and Interests: Disable Widgets on Lockscreen&lt;/li&gt;
&lt;li&gt;News and Interests: Disable Widgets Board&lt;/li&gt;
&lt;li&gt;Widgets: Allow Widgets&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/disable-windows-taskbar-widgets-through-intune-5551/jv-media-5551-81938df80595.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;In my case, I have set all three options to disabled/Not allowed.&lt;/p&gt;</description></item><item><title>Using and configuring Windows Backup for Organizations in Intune</title><link>https://justinverstijnen.nl/configure-windows-backup-for-organizations-in-intune/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/configure-windows-backup-for-organizations-in-intune/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Windows 11 &lt;a href="https://learn.microsoft.com/en-us/windows/configuration/windows-backup/?tabs=intune#backup-requirements"&gt;with the latest feature updates installed&lt;/a&gt; for both creating and restoring backups&lt;/li&gt;
&lt;li&gt;Entra ID joined or Entra Hybrid joined device&lt;/li&gt;
&lt;li&gt;Microsoft Intune-capable license&lt;/li&gt;
&lt;li&gt;Around 15 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-windows-backup-for-organizations"&gt;What is Windows Backup for Organizations?&lt;a class="td-heading-self-link" href="#what-is-windows-backup-for-organizations" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Windows Backup for Organizations is a feature where Windows creates a backup of your Windows settings and Windows Store applications every 8 days. This will be saved to your Microsoft business account. If ever having to re-install your device or to use a new device, you can easily restore your old configuration. This is a revolution on top of the older Enterprise State Roaming feature, who did around 20% of this.&lt;/p&gt;</description></item><item><title>Remove Pre-installed Windows Store Apps with Intune</title><link>https://justinverstijnen.nl/remove-pre-installed-windows-store-apps-with-intune/</link><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/remove-pre-installed-windows-store-apps-with-intune/</guid><description>&lt;h2 id="this-new-feature-described"&gt;This new feature described&lt;a class="td-heading-self-link" href="#this-new-feature-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In Intune we can now select which default shipped apps must be removed from Windows clients. Before, this was a complete package we had to use or remove with custom scripts, but now we can select the apps to remove (and deselect to keep).&lt;/p&gt;
&lt;p&gt;Keep in mind, we have the following requirements for this new feature:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 11 25H2&lt;/li&gt;
&lt;li&gt;Education or Enterprise version&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also worth mentioning, removing an application needs a manual reinstall, which is easy to do.&lt;/p&gt;</description></item><item><title>Solved - ADSync service stopped (Entra Connect Sync)</title><link>https://justinverstijnen.nl/solved-adsync-service-stopped-entra-connect-sync/</link><pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/solved-adsync-service-stopped-entra-connect-sync/</guid><description>&lt;p&gt;Sometimes, the ADSync service stops without further notice. You will see that the service has been stopped in the Services panel:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/solved-adsync-service-stopped-entra-connect-sync-6576/jv-media-6576-3fafbbf3b1d4.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;In this guide I will explain how I solved this problem using a simple PowerShell script.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-check-adsync-script"&gt;The Check ADSync script&lt;a class="td-heading-self-link" href="#the-check-adsync-script" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The PowerShell script that fixes this problem is on my GitHub page:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/JV-CheckStartADSyncService"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The script simply checks if the service is running, if this is the case the script will be terminated. If the service is not running, the service will be started.&lt;/p&gt;</description></item><item><title>Customize Office apps installation for Azure Virtual Desktop</title><link>https://justinverstijnen.nl/customize-office-apps-installation-for-azure-virtual-desktop/</link><pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/customize-office-apps-installation-for-azure-virtual-desktop/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;A Microsoft 365 tenant with Global Administrator, Security Administrator or Office Apps Admin permissions&lt;/li&gt;
&lt;li&gt;A Windows machine to test the installation&lt;/li&gt;
&lt;li&gt;Basic knowledge of Virtual Desktops and Office Apps&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-the-office-configuration-tool"&gt;What is the Office Configuration Tool?&lt;a class="td-heading-self-link" href="#what-is-the-office-configuration-tool" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Office Configuration Tool (&lt;a href="https://config.office.com"&gt;config.office.com&lt;/a&gt;) is a customization tool for your Office installation. We can some custom settings and define which settings we want, how the programs must behave and include and exclude software we don&amp;rsquo;t need.&lt;/p&gt;</description></item><item><title>Automatic Azure Boot diagnostics monitoring with Azure Policy</title><link>https://justinverstijnen.nl/automatic-azure-boot-diagnostics-monitoring-with-azure-policy/</link><pubDate>Thu, 11 Sep 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/automatic-azure-boot-diagnostics-monitoring-with-azure-policy/</guid><description>&lt;p&gt;In short, &lt;a href="https://justinverstijnen.nl/ama-module-3-governance-in-microsoft-azure/#azure-policy"&gt;Azure Policy&lt;/a&gt; is a compliance/governance tool in Azure with capabilities for automatically pushing your resources to be compliant with your stated policy. This means if we configure Azure Policy to automatically configure boot diagnostics and save the information to a storage account, this will be automatically done for all existing and new virtual machines.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="step-1-the-configuration-explained"&gt;Step 1: The configuration explained&lt;a class="td-heading-self-link" href="#step-1-the-configuration-explained" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The boot diagnostics in Azure enables you to monitor the state of the virtual machine in the portal. By default, this will be enabled with a Microsoft managed storage account but we don&amp;rsquo;t have control over the storage account.&lt;/p&gt;</description></item><item><title>How to completely hide language bar/selector Windows 11</title><link>https://justinverstijnen.nl/how-to-completely-hide-language-bar-selector-windows-11/</link><pubDate>Tue, 09 Sep 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-completely-hide-language-bar-selector-windows-11/</guid><description>&lt;p&gt;One of the small things I experienced in one of the updates for Windows 11 (24H2) is that the language bar/selector get&amp;rsquo;s automatically visible on the Windows taskbar. In previous versions of Windows, this was only available when using multiple keyboard languages.&lt;/p&gt;
&lt;p&gt;Because this can get very annoying, I researched on how to disable this button to clean up our taskbar and only use it for the applications and space we need.&lt;/p&gt;</description></item><item><title>Wordpress on Azure</title><link>https://justinverstijnen.nl/wordpress-on-azure/</link><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/wordpress-on-azure/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An Azure subscription&lt;/li&gt;
&lt;li&gt;A public domain name to run the website on (not required, but really nice)&lt;/li&gt;
&lt;li&gt;Some basic knowledge about Azure&lt;/li&gt;
&lt;li&gt;Some basic knowledge about IP addresses, DNS and websites&lt;/li&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-wordpress"&gt;What is Wordpress?&lt;a class="td-heading-self-link" href="#what-is-wordpress" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For the people who may not know what Wordpress is; Wordpress is a tool to create and manage websites, without needing to have knowledge of code. It is a so-called content management system (CMS) and has thousands of themes and plugins to play with. This website you see now is also running on Wordpress.&lt;/p&gt;</description></item><item><title>In-Place upgrade to Windows Server 2025 on Azure</title><link>https://justinverstijnen.nl/in-place-upgrade-windows-server-on-azure/</link><pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/in-place-upgrade-windows-server-on-azure/</guid><description>&lt;p&gt;Once every 3 to 4 years you want to be on the last version of Windows Server because of new features and of course to have the latest security updates. These security updates are the most important these days.&lt;/p&gt;
&lt;p&gt;When having your server hosted on Microsoft Azure, this proces can look a bit complicated but it is relatively easy to upgrade your Windows Server to the last version, and I will explain how to on this page.&lt;/p&gt;</description></item><item><title>Match AD users using Entra Connect Sync and MSGraph</title><link>https://justinverstijnen.nl/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/match-active-directory-users-with-microsoft-365-using-entra-connect-sync-hard-match-813/jv-media-813-da1d8fd6db71.png" alt="Entra Connect sync"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-difference-between-soft-and-hard-matching"&gt;The difference between soft and hard matching&lt;a class="td-heading-self-link" href="#the-difference-between-soft-and-hard-matching" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Most of the time the system itself will match the users automatically using soft-matching. Here the service will be matching users in both Entra ID and Active Directory by using known attributes like UserPrincipalName and ProxyAddresses.&lt;/p&gt;
&lt;p&gt;In some cases, especially when you use different Active Directory and Entra ID domains, we need to give the final tip to Entra ID to match and AD user to an Entra ID users. We will tell Entra ID what the GUID of the on-premises user is by getting that value and encode it into Base64. Then we pass Entra ID this value so it understands what local user to link with what cloud user. This process is called &amp;ldquo;hard-matching&amp;rdquo;, as we have to do this by hand or by scripting.&lt;/p&gt;</description></item><item><title>Joining storage account to Active Directory (AD DS)</title><link>https://justinverstijnen.nl/joining-storage-account-to-active-directory-ad-ds/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/joining-storage-account-to-active-directory-ad-ds/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription with the storage account&lt;/li&gt;
&lt;li&gt;An Active Directory (AD DS) to join the storage account with (on-premises/Azure)&lt;/li&gt;
&lt;li&gt;Basic knowledge of Active Directory and PowerShell&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="step-1-prepare-the-active-directory-server"&gt;Step 1: Prepare the Active Directory server&lt;a class="td-heading-self-link" href="#step-1-prepare-the-active-directory-server" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We must first prepare our server. This must be a domain-joined server, but preferably not a domain controller. Use a management server instead when possible. We must execute&lt;/p&gt;</description></item><item><title>Clean up old FSLogix profiles with Logic Apps</title><link>https://justinverstijnen.nl/clean-up-your-fslogix-profiles-with-logic-apps/</link><pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/clean-up-your-fslogix-profiles-with-logic-apps/</guid><description>&lt;p&gt;I will give you a step-by-step guide to build this Logic App yourself.&lt;/p&gt;
&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;Make sure you have backups ofenabled on your storage account so when a file is deleted but you need it for some reason after some time, you can restore it from a monthly or yearly backup.&lt;/p&gt;
&lt;p&gt;Also: Recover Services storage is much cheaper than live Storage Account storage, keep this in mind when implementing this sort of Logic Apps.&lt;/p&gt;</description></item><item><title>Using FSLogix App Masking to hide applications on Virtual Desktops</title><link>https://justinverstijnen.nl/using-fslogix-app-masking-to-hide-applications-on-virtual-desktops/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/using-fslogix-app-masking-to-hide-applications-on-virtual-desktops/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;li&gt;An environment with Active Directory and separate client machine with FSLogix pre-installed&lt;/li&gt;
&lt;li&gt;Basic knowledge of Active Directory&lt;/li&gt;
&lt;li&gt;Basic knowledge of Windows and FSLogix&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-fslogix-app-masking"&gt;What is FSLogix App Masking?&lt;a class="td-heading-self-link" href="#what-is-fslogix-app-masking" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;FSLogix App Masking is an extra feature of the FSLogix solution. FSLogix itself is a profile container solution which is widely used in virtual desktop environments where users can login on any computer and the profile is fetched of a shared location. This eliminates local profiles and a universal experience on any host.&lt;/p&gt;</description></item><item><title>Use Ephemeral OS Disks in Azure</title><link>https://justinverstijnen.nl/use-ephemeral-os-disks-in-azure/</link><pubDate>Thu, 24 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/use-ephemeral-os-disks-in-azure/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 25 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription (if wanting to deploy)&lt;/li&gt;
&lt;li&gt;Basic knowledge of Azure&lt;/li&gt;
&lt;li&gt;Basic knowledge of servers and infrastructure&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-are-ephemeral-os-disks"&gt;What are Ephemeral OS Disks?&lt;a class="td-heading-self-link" href="#what-are-ephemeral-os-disks" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ephemeral OS Disks are disks in Azure where the data is stored directly on the hypervisor itself, rather than having a managed disk which could be resided at the very other end of a datacenter. Every cable and step between the disk and the virtual machine creates latency which will result in your machine being slower.&lt;/p&gt;</description></item><item><title>RDP Multipath - What is it and how to configure?</title><link>https://justinverstijnen.nl/rdp-multipath-what-is-it-and-how-to-configure/</link><pubDate>Wed, 16 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/rdp-multipath-what-is-it-and-how-to-configure/</guid><description>&lt;p&gt;Let&amp;rsquo;s take a look what RDP Multipath adds to your connections:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/rdp-multipath-what-is-it-and-how-to-configure-3778/jv-media-3778-6509addb3606.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Green:&lt;/strong&gt; The normal paths of connecting with RDP/Shortpath
&lt;strong&gt;Purple:&lt;/strong&gt; The paths added by RDP Multipath&lt;/p&gt;
&lt;p&gt;This adds extra ways of connecting session hosts to the end device, selects the most reliable one and therefore adds stability and decreases latency.&lt;/p&gt;
&lt;p&gt;RDP Multipath now has to be configured manually, but the expectation is that it will be added to new AVD/Multi Session images shortly, just ad RDP Shortpath did at the time.&lt;/p&gt;</description></item><item><title>Implement Certificate-based authentication for Entra ID scripts</title><link>https://justinverstijnen.nl/implement-certificate-based-authentication-for-entra-id-scripts/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/implement-certificate-based-authentication-for-entra-id-scripts/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 20 minutes of your time&lt;/li&gt;
&lt;li&gt;An Entra ID environment if you want to test this&lt;/li&gt;
&lt;li&gt;A prepared Entra ID app registration&lt;/li&gt;
&lt;li&gt;A server or workstation running Windows to do the connection to Entra ID&lt;/li&gt;
&lt;li&gt;Some basic knowledge about Entra ID and certificates&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-does-these-certificates-work"&gt;How does these certificates work?&lt;a class="td-heading-self-link" href="#how-does-these-certificates-work" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Certificate based authentication means that we can authenticate ourselves to Entra ID using a certificate instead of user credentials or a password in plain text. When using some automated scripts it needs permissions to perform its actions but this means storing some sort of authentication. We don&amp;rsquo;t want to store our credentials on the server as this decreases our security and a potential risk of compromise.&lt;/p&gt;</description></item><item><title>Use Azure Logic Apps to automatically start and stop VMs</title><link>https://justinverstijnen.nl/use-azure-logic-apps-to-automatically-start-and-stop-vms/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/use-azure-logic-apps-to-automatically-start-and-stop-vms/</guid><description>&lt;h2 id="azure-logic-apps"&gt;Azure Logic Apps&lt;a class="td-heading-self-link" href="#azure-logic-apps" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Azure Logic Apps is a solution to automate flows that we can run based on a trigger. After a certain trigger is being met, the Logic App can then perform some certain steps, like;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get data from database/SharePoint&lt;/li&gt;
&lt;li&gt;Process data&lt;/li&gt;
&lt;li&gt;Send email&lt;/li&gt;
&lt;li&gt;Start or Stop VM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To keep it simple, such logic app can looks like this:&lt;/p&gt;
&lt;!-- draw.io diagram --&gt;
&lt;div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&amp;quot;highlight&amp;quot;:&amp;quot;#0000ff&amp;quot;,&amp;quot;nav&amp;quot;:true,&amp;quot;resize&amp;quot;:true,&amp;quot;dark-mode&amp;quot;:&amp;quot;auto&amp;quot;,&amp;quot;toolbar&amp;quot;:&amp;quot;zoom layers tags lightbox&amp;quot;,&amp;quot;xml&amp;quot;:&amp;quot;&amp;lt;mxfile host=\&amp;quot;Electron\&amp;quot; agent=\&amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.15 Chrome/134.0.6998.205 Electron/35.2.1 Safari/537.36\&amp;quot; version=\&amp;quot;26.2.15\&amp;quot;&amp;gt;\n &amp;lt;diagram name=\&amp;quot;Pagina-1\&amp;quot; id=\&amp;quot;vu_1MCZk8u4QtrpTwHyX\&amp;quot;&amp;gt;\n &amp;lt;mxGraphModel dx=\&amp;quot;1992\&amp;quot; dy=\&amp;quot;645\&amp;quot; grid=\&amp;quot;1\&amp;quot; gridSize=\&amp;quot;10\&amp;quot; guides=\&amp;quot;1\&amp;quot; tooltips=\&amp;quot;1\&amp;quot; connect=\&amp;quot;1\&amp;quot; arrows=\&amp;quot;1\&amp;quot; fold=\&amp;quot;1\&amp;quot; page=\&amp;quot;1\&amp;quot; pageScale=\&amp;quot;1\&amp;quot; pageWidth=\&amp;quot;1169\&amp;quot; pageHeight=\&amp;quot;827\&amp;quot; math=\&amp;quot;0\&amp;quot; shadow=\&amp;quot;0\&amp;quot;&amp;gt;\n &amp;lt;root&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;0\&amp;quot; /&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;1\&amp;quot; parent=\&amp;quot;0\&amp;quot; /&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-2\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;image;sketch=0;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/mscae/Logic_Apps.svg;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-1157.82\&amp;quot; y=\&amp;quot;10\&amp;quot; width=\&amp;quot;75.64\&amp;quot; height=\&amp;quot;59\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-3\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/general/Scheduler.svg;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-967.8199999999999\&amp;quot; y=\&amp;quot;14.5\&amp;quot; width=\&amp;quot;50\&amp;quot; height=\&amp;quot;50\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-4\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/compute/Virtual_Machine.svg;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-637.8199999999999\&amp;quot; y=\&amp;quot;14.5\&amp;quot; width=\&amp;quot;69\&amp;quot; height=\&amp;quot;64\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-5\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;fillColor=#3B8DF1;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;shape=mxgraph.gcp2.a7_power\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-797.8199999999999\&amp;quot; y=\&amp;quot;14.5\&amp;quot; width=\&amp;quot;50\&amp;quot; height=\&amp;quot;50\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-6\&amp;quot; value=\&amp;quot;&amp;amp;lt;b&amp;amp;gt;Logic App&amp;amp;lt;/b&amp;amp;gt;\&amp;quot; style=\&amp;quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-1160\&amp;quot; y=\&amp;quot;80\&amp;quot; width=\&amp;quot;80\&amp;quot; height=\&amp;quot;30\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-7\&amp;quot; value=\&amp;quot;&amp;amp;lt;b&amp;amp;gt;Schedule&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;div&amp;amp;gt;&amp;amp;lt;b&amp;amp;gt;(every day on 9:00 AM)&amp;amp;lt;/b&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;\&amp;quot; style=\&amp;quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-1017.8199999999999\&amp;quot; y=\&amp;quot;75\&amp;quot; width=\&amp;quot;150\&amp;quot; height=\&amp;quot;40\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-8\&amp;quot; value=\&amp;quot;&amp;amp;lt;b&amp;amp;gt;Power-On&amp;amp;lt;/b&amp;amp;gt;\&amp;quot; style=\&amp;quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-812.8199999999999\&amp;quot; y=\&amp;quot;78.5\&amp;quot; width=\&amp;quot;80\&amp;quot; height=\&amp;quot;30\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-9\&amp;quot; value=\&amp;quot;&amp;amp;lt;b&amp;amp;gt;Virtual Machine&amp;amp;lt;/b&amp;amp;gt;\&amp;quot; style=\&amp;quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;\&amp;quot; vertex=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry x=\&amp;quot;-658.3199999999999\&amp;quot; y=\&amp;quot;78.5\&amp;quot; width=\&amp;quot;110\&amp;quot; height=\&amp;quot;30\&amp;quot; as=\&amp;quot;geometry\&amp;quot; /&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-10\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;flowAnimation=1;entryX=-0.033;entryY=0.503;entryDx=0;entryDy=0;entryPerimeter=0;\&amp;quot; edge=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot; target=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-3\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry width=\&amp;quot;50\&amp;quot; height=\&amp;quot;50\&amp;quot; relative=\&amp;quot;1\&amp;quot; as=\&amp;quot;geometry\&amp;quot;&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-1080\&amp;quot; y=\&amp;quot;39\&amp;quot; as=\&amp;quot;sourcePoint\&amp;quot; /&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-990\&amp;quot; y=\&amp;quot;40\&amp;quot; as=\&amp;quot;targetPoint\&amp;quot; /&amp;gt;\n &amp;lt;/mxGeometry&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-11\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;flowAnimation=1;entryX=0.008;entryY=0.499;entryDx=0;entryDy=0;entryPerimeter=0;\&amp;quot; edge=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot; target=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-5\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry width=\&amp;quot;50\&amp;quot; height=\&amp;quot;50\&amp;quot; relative=\&amp;quot;1\&amp;quot; as=\&amp;quot;geometry\&amp;quot;&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-917.8199999999999\&amp;quot; y=\&amp;quot;39\&amp;quot; as=\&amp;quot;sourcePoint\&amp;quot; /&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-807.64\&amp;quot; y=\&amp;quot;40\&amp;quot; as=\&amp;quot;targetPoint\&amp;quot; /&amp;gt;\n &amp;lt;/mxGeometry&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;mxCell id=\&amp;quot;HWtHuZUkWH_dWUqPsxzS-12\&amp;quot; value=\&amp;quot;\&amp;quot; style=\&amp;quot;endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;flowAnimation=1;entryX=-0.033;entryY=0.503;entryDx=0;entryDy=0;entryPerimeter=0;\&amp;quot; edge=\&amp;quot;1\&amp;quot; parent=\&amp;quot;1\&amp;quot;&amp;gt;\n &amp;lt;mxGeometry width=\&amp;quot;50\&amp;quot; height=\&amp;quot;50\&amp;quot; relative=\&amp;quot;1\&amp;quot; as=\&amp;quot;geometry\&amp;quot;&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-747.8199999999999\&amp;quot; y=\&amp;quot;39\&amp;quot; as=\&amp;quot;sourcePoint\&amp;quot; /&amp;gt;\n &amp;lt;mxPoint x=\&amp;quot;-637.64\&amp;quot; y=\&amp;quot;40\&amp;quot; as=\&amp;quot;targetPoint\&amp;quot; /&amp;gt;\n &amp;lt;/mxGeometry&amp;gt;\n &amp;lt;/mxCell&amp;gt;\n &amp;lt;/root&amp;gt;\n &amp;lt;/mxGraphModel&amp;gt;\n &amp;lt;/diagram&amp;gt;\n&amp;lt;/mxfile&amp;gt;\n&amp;quot;}"&gt;&lt;/div&gt;
&lt;script type="text/javascript" src="https://viewer.diagrams.net/js/viewer-static.min.js"&gt;&lt;/script&gt;
&lt;p&gt;In Logic Apps there are templates to help you starting out what the possibilities are:&lt;/p&gt;</description></item><item><title>How to implement Azure Firewall to secure your Azure environment</title><link>https://justinverstijnen.nl/how-to-implement-azure-firewall-to-secure-your-azure-environment/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-implement-azure-firewall-to-secure-your-azure-environment/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 60 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription&lt;/li&gt;
&lt;li&gt;Basic knowledge of Azure&lt;/li&gt;
&lt;li&gt;Basic knowledge of Networking&lt;/li&gt;
&lt;li&gt;Basic knowledge of &lt;a href="https://justinverstijnen.nl/what-is-azure-firewall"&gt;Azure Firewall&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before creating all resources, it is great to plan before we build. I mean planning your network before building and having different overlaps or too much/less addresses available. In most cases, Azure recommends building a Hub-and-Spoke network, where we connect all spoke networks to a big hub.&lt;/p&gt;</description></item><item><title>Enhance email security with SPF/DKIM/DMARC</title><link>https://justinverstijnen.nl/enhance-email-security-with-spf-dkim-dmarc/</link><pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/enhance-email-security-with-spf-dkim-dmarc/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;&lt;a href="https://techcommunity.microsoft.com/blog/microsoftdefenderforoffice365blog/strengthening-email-ecosystem-outlook%E2%80%99s-new-requirements-for-high%E2%80%90volume-senders/4399730"&gt;Microsoft announced&lt;/a&gt; that starting from May 5, 2025: SPF, DKIM and DMARC will become mandatory for inbound email delivery. Not configuring all three can result in your emails not being delivered correctly.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;These 3 techniques are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPF&lt;/strong&gt;: Sender Policy Framework&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DKIM&lt;/strong&gt;: Domain Keys Identified Mail&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DMARC&lt;/strong&gt;: Domain-based Message Authentication Reporting and Conformance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When using Microsoft 365 as your messaging service, I also highly recommend to configure SMTP DANE. A detailed guide of configuring this can be found here: &lt;a href="https://justinverstijnen.nl/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365/"&gt;https://justinverstijnen.nl/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Pooled Azure Virtual Desktop with Azure AD cloud users only</title><link>https://justinverstijnen.nl/pooled-azure-virtual-desktop-with-azure-ad-users/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/pooled-azure-virtual-desktop-with-azure-ad-users/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;This deployment option is superseded by the more easy and secure Entra Kerberos option, check out the updated deployment guide here: &lt;a href="https://justinverstijnen.nl/azure-virtual-desktop-fslogix-and-native-kerberos-authentication/"&gt;https://justinverstijnen.nl/azure-virtual-desktop-fslogix-and-native-kerberos-authentication/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Since the beginning of Azure Virtual Desktop, it is mandatory to run it with an Active Directory. This because when using pooled session hosts, there has to be some sort of NTFS permission for FSLogix to reach the users&amp;rsquo; profile disks. This permission is done using NTFS with Kerberos authentication. Something Azure AD doesn&amp;rsquo;t support.&lt;/p&gt;</description></item><item><title>Creating Static Web Apps on Azure the easy way</title><link>https://justinverstijnen.nl/creating-static-web-apps-on-azure-the-easy-way/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/creating-static-web-apps-on-azure-the-easy-way/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;li&gt;An account for Github (recommended)&lt;/li&gt;
&lt;li&gt;An Azure subscription to host your Static Web App&lt;/li&gt;
&lt;li&gt;Some basic knowledge of Azure&lt;/li&gt;
&lt;li&gt;A custom domain to link the web app to your domain&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="introduction-to-static-web-apps-and-github"&gt;Introduction to Static Web Apps and Github&lt;a class="td-heading-self-link" href="#introduction-to-static-web-apps-and-github" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before we dive into Static Web Apps and Github, I want to give a clear explaination of both the components that will help us achieving our goal, hosting a simple web app on Azure.&lt;/p&gt;</description></item><item><title>Create custom Azure Workbooks for detailed monitoring</title><link>https://justinverstijnen.nl/create-custom-azure-workbooks-for-detailed-monitoring/</link><pubDate>Thu, 08 May 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/create-custom-azure-workbooks-for-detailed-monitoring/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Azure Workbooks are a powerful way to build customizable dashboards for monitoring applications and infrastructure. They can combine multiple data sources such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Log Analytics Workspaces&lt;/li&gt;
&lt;li&gt;Visualizations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They are flexible enough for quick performance overviews or deep investigations.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/create-custom-azure-workbooks-for-detailed-monitoring-1468/jv-media-1468-2640911c236e.png" alt="Azure Workbook Overview"&gt;&lt;/p&gt;
&lt;h2 id="using-default-azure-workbooks"&gt;Using Default Azure Workbooks&lt;a class="td-heading-self-link" href="#using-default-azure-workbooks" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Many Azure resources include built-in workbook templates with basic health and performance insights.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open your Virtual Machine.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Workbooks&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Overview&lt;/strong&gt; or another template.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/create-custom-azure-workbooks-for-detailed-monitoring-1468/jv-media-1468-718a21d9fa1c.png" alt="Default Workbook"&gt;&lt;/p&gt;</description></item><item><title>Setup a Minecraft server on Azure</title><link>https://justinverstijnen.nl/setup-a-minecraft-server-on-azure/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/setup-a-minecraft-server-on-azure/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An Azure environment&lt;/li&gt;
&lt;li&gt;Basic knowledge of Azure&lt;/li&gt;
&lt;li&gt;Basic knowledge of Linux and SSH&lt;/li&gt;
&lt;li&gt;Basic knowledge of networking and TCP/UDP&lt;/li&gt;
&lt;li&gt;Experience with Minecraft to test the server&lt;/li&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="system-requirements-of-a-minecraft-server"&gt;System requirements of a Minecraft server&lt;a class="td-heading-self-link" href="#system-requirements-of-a-minecraft-server" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For a typical Minecraft server, without Mods, the guidelines and system requirements are as stated below:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Processor cores&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Ram&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Player Slots&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;World Size&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;8GB&lt;/td&gt;
 &lt;td&gt;Up to 10&lt;/td&gt;
 &lt;td&gt;Up to 8GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;16GB&lt;/td&gt;
 &lt;td&gt;Up to 20&lt;/td&gt;
 &lt;td&gt;Up to 15GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;32GB&lt;/td&gt;
 &lt;td&gt;Up to 50&lt;/td&gt;
 &lt;td&gt;Up to 20GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;td&gt;64GB&lt;/td&gt;
 &lt;td&gt;Up to 100&lt;/td&gt;
 &lt;td&gt;Up to 60GB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="setup-the-azure-environment-for-a-minecraft-server"&gt;Setup the Azure environment for a Minecraft server&lt;a class="td-heading-self-link" href="#setup-the-azure-environment-for-a-minecraft-server" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="creating-the-resource-group"&gt;Creating the Resource Group&lt;a class="td-heading-self-link" href="#creating-the-resource-group" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;First, we need to setup our Azure environment for a Minecraft server. I started with creating a Resource group named &amp;ldquo;rg-jv-minecraftserver&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Monitor Azure Virtual Deskop logon speed</title><link>https://justinverstijnen.nl/monitor-azure-virtual-deskop-logon-performance/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/monitor-azure-virtual-deskop-logon-performance/</guid><description>&lt;p&gt;The script is &lt;strong&gt;not&lt;/strong&gt; made by myself, the source of the script is: &lt;a href="https://www.controlup.com/script-library-posts/analyze-logon-duration/"&gt;https://www.controlup.com/script-library-posts/analyze-logon-duration/&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-script-used-in-practice"&gt;The script used in practice&lt;a class="td-heading-self-link" href="#the-script-used-in-practice" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I have a demo environment where we can test this script. There we will run the script.&lt;/p&gt;
&lt;p&gt;The script must be run at the machine where a user has just finished the login process. The user must be still logged on at the time you run it because it needs information from the event log and the session id.&lt;/p&gt;</description></item><item><title>Deploy Resource Group locks automatically with Azure Policy</title><link>https://justinverstijnen.nl/deploy-resource-group-locks-automatically-with-azure-policy/</link><pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/deploy-resource-group-locks-automatically-with-azure-policy/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;Note: Locks on Resource Groups can stop some automations. If you use read-only locks on a Azure Virtual Desktop resource group for example, autoscaling will not work anymore.&lt;/p&gt;
&lt;p&gt;Take care and test these changes before creating them and assigning this policy to such (production) subscription.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="the-solution-described"&gt;The solution described&lt;a class="td-heading-self-link" href="#the-solution-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This solution consists of an Azure Policy Definition, that is assigned to the subscription where this must be executed. It also consists of a custom role that only gives the needed permissions, and nothing more.&lt;/p&gt;</description></item><item><title>Migrate servers with Azure Migrate in 7 steps</title><link>https://justinverstijnen.nl/using-azure-migrate-to-migrate-on-premises-to-azure/</link><pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/using-azure-migrate-to-migrate-on-premises-to-azure/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A server to migrate to Microsoft Azure&lt;/li&gt;
&lt;li&gt;Ability to install 1 or 2 additional servers
&lt;ul&gt;
&lt;li&gt;Must be in the same network&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Around 60 minutes of your time&lt;/li&gt;
&lt;li&gt;Administrator access to all source servers&lt;/li&gt;
&lt;li&gt;RDP access to all source servers is useful&lt;/li&gt;
&lt;li&gt;Secure Boot must be disabled on the source servers&lt;/li&gt;
&lt;li&gt;A target Azure Subscription with Owner access&lt;/li&gt;
&lt;li&gt;1 server dedicated to Migration based on &lt;em&gt;Windows Server 2016*&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;2 servers for Discovery and Migration based on &lt;em&gt;Windows Server 2016*&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;*Windows Server 2016 is the only supported OS, please do not install other versions as this will not work.&lt;/p&gt;</description></item><item><title>Module 11: Infrastructure as Code &amp; DevOps</title><link>https://justinverstijnen.nl/amc-module-11-infrastructure-as-code-iac-and-devops/</link><pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/amc-module-11-infrastructure-as-code-iac-and-devops/</guid><description>&lt;p&gt;In this module, we cover Azure: Infrastructure as Code (IaC) and DevOps. This module focuses more on development on Azure, with less emphasis on automation and IT management. While IaC and DevOps might seem less exciting at first, they are essential for modern cloud-based application development and operations, helping streamline deployments, ensure consistency, and integrate continuous delivery pipelines.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="azure-management-tools"&gt;Azure Management Tools&lt;a class="td-heading-self-link" href="#azure-management-tools" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are multiple environments to manage Azure and its resources:&lt;/p&gt;</description></item><item><title>Solved - FSLogix release 25.02 breaks Recycle Bin - Azure Virtual Desktop</title><link>https://justinverstijnen.nl/solved-fslogix-update-25-02-breaks-recycle-bin-bug/</link><pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/solved-fslogix-update-25-02-breaks-recycle-bin-bug/</guid><description>&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;This issue has been solved in the newest release of FSLogix 25.04: &lt;a href="https://learn.microsoft.com/en-us/fslogix/overview-release-notes"&gt;https://learn.microsoft.com/en-us/fslogix/overview-release-notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please use this newer version instead of version 25.02. This fixes the bug in this article without any change in policies and settings.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id="the-problembug-described"&gt;The problem/bug described&lt;a class="td-heading-self-link" href="#the-problembug-described" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When testing the new FSLogix 25.02 version, I came across a very annoying problem/bug in this new version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/solved-fslogix-update-25-02-breaks-recycle-bin-bug-1312/jv-media-1312-c20e8ab02a2c.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The Recycle Bin on C:\ is corrupted. Do you want to empty the Recycle Bin for this drive?&amp;rdquo;&lt;/p&gt;</description></item><item><title>Save Azure costs on Virtual Machines with Start/Stop</title><link>https://justinverstijnen.nl/save-azure-costs-on-virtual-machines-with-start-stop/</link><pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/save-azure-costs-on-virtual-machines-with-start-stop/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription&lt;/li&gt;
&lt;li&gt;One or more Azure VMs to automatically start and stop&lt;/li&gt;
&lt;li&gt;Basic knowledge of Azure&lt;/li&gt;
&lt;li&gt;No fear of JSON configurations&lt;/li&gt;
&lt;li&gt;Some drink of your choice&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="introduction-to-the-startstop-solution"&gt;Introduction to the Start/Stop solution&lt;a class="td-heading-self-link" href="#introduction-to-the-startstop-solution" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Start/Stop solution is a complete solution and collection of predefined resources built by Microsoft itself. It is purely focussed on starting VMs and stopping VMs based on some rules you can configure. The solution consists of some different resources and dependencies:&lt;/p&gt;</description></item><item><title>Penetration testing Defender for Identity and Active Directory</title><link>https://justinverstijnen.nl/penetration-testing-defender-for-identity-and-active-directory/</link><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/penetration-testing-defender-for-identity-and-active-directory/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;At least one Microsoft Defender for Identity running
&lt;ul&gt;
&lt;li&gt;For a step by step guide of this, &lt;a href="https://justinverstijnen.nl/how-to-defend-your-active-directory-with-defender-for-identity"&gt;refer this guide&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A domain controller (vm-jv-mdi)&lt;/li&gt;
&lt;li&gt;A workstation (ws-jv-mdi)&lt;/li&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="starting-out"&gt;Starting out&lt;a class="td-heading-self-link" href="#starting-out" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So I want to mention, that most of the attacks to Active Directory can be easily prevented if everybody locks their computer everytime they walk away from it and also use good enough authentication methods. Some other attacks cannot always be prevented but we can do the most of it detecting them and acting in a greatly manner.&lt;/p&gt;</description></item><item><title>Deep dive into IPv6 with Microsoft Azure</title><link>https://justinverstijnen.nl/deep-dive-into-ipv6-with-microsoft-azure/</link><pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/deep-dive-into-ipv6-with-microsoft-azure/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Basic knowledge of Azure and IPv4 and IPv6
&lt;ul&gt;
&lt;li&gt;Reading this guide prior is recommended: &lt;a href="https://justinverstijnen.nl/basic-ipv6-explaination/"&gt;https://justinverstijnen.nl/basic-ipv6-explaination/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Around 45 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subscription to test and succeed on&lt;/li&gt;
&lt;li&gt;A cup of coffee or drink of your choice :)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="creating-a-virtual-network-vnet-with-ipv6"&gt;Creating a Virtual Network (VNET) with IPv6&lt;a class="td-heading-self-link" href="#creating-a-virtual-network-vnet-with-ipv6" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;By default, Azure pushes you to use an IPv4 address space when creating a virtual network in Azure. Now this is the best understandable and easy version of addressing.&lt;/p&gt;</description></item><item><title>How to monitor your Active Directory with Defender for Identity</title><link>https://justinverstijnen.nl/how-to-defend-your-active-directory-with-defender-for-identity/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-defend-your-active-directory-with-defender-for-identity/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An Microsoft 365 tenant&lt;/li&gt;
&lt;li&gt;A traditional Active Directory (AD DS) environment which meets &lt;a href="https://learn.microsoft.com/en-us/defender-for-identity/deploy/prerequisites#sensor-requirements-and-recommendations"&gt;the system requirements&lt;/a&gt; and is Server 2016+&lt;/li&gt;
&lt;li&gt;A license that has Defender for Identity included, like;
&lt;ul&gt;
&lt;li&gt;Enterprise Mobility &amp;amp; Security E5&lt;/li&gt;
&lt;li&gt;E5 or E5 security add-on&lt;/li&gt;
&lt;li&gt;Standalone Defender for Identity license&lt;/li&gt;
&lt;li&gt;F5 Security add-on with F1 or F3 license already in place&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://learn.microsoft.com/en-us/defender-for-identity/deploy/prerequisites#licensing-requirements"&gt;https://learn.microsoft.com/en-us/defender-for-identity/deploy/prerequisites#licensing-requirements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Around 60 minutes of your time&lt;/li&gt;
&lt;li&gt;A drink of your choice&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-is-microsoft-defender-for-identity-mdi"&gt;What is Microsoft Defender for Identity (MDI)?&lt;a class="td-heading-self-link" href="#what-is-microsoft-defender-for-identity-mdi" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Microsoft Defender for Identity (MDI for short) is a comprehensive security and monitoring tool which is part of the Microsoft XDR suite that defends your Windows Server-based &lt;strong&gt;Active Directory&lt;/strong&gt; (AD DS). This does it by installing agents on every domain controller and so monitoring every authentication request.&lt;/p&gt;</description></item><item><title>Using Azure Update Manager to manage updates at scale</title><link>https://justinverstijnen.nl/using-azure-update-manager-to-manage-updates-at-scale/</link><pubDate>Sat, 08 Feb 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/using-azure-update-manager-to-manage-updates-at-scale/</guid><description>&lt;p&gt;Azure Update Manager is a tool from Microsoft and is developed to automate, installing and documenting Windows updates or updates to Linux server on Azure. This all in a single pane of glass and without installing any additional software.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/using-azure-update-manager-to-manage-updates-at-scale-837/jv-media-837-da1adbcab709.png" alt=""&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 15 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure subsciption&lt;/li&gt;
&lt;li&gt;An Azure server or Azure Arc server&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="supported-systems"&gt;Supported systems&lt;a class="td-heading-self-link" href="#supported-systems" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Azure Update Manager supports the following systems for assessments and installing updates, therefore managing them:&lt;/p&gt;</description></item><item><title>Active Directory FSMO roles</title><link>https://justinverstijnen.nl/active-directory-fsmo-roles/</link><pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/active-directory-fsmo-roles/</guid><description>&lt;h2 id="what-are-the-fsmo-roles-of-active-directory"&gt;What are the FSMO roles of Active Directory?&lt;a class="td-heading-self-link" href="#what-are-the-fsmo-roles-of-active-directory" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;FSMO stands for Flexible Single Master Operations. Active Directory is normally multi-master, meaning changes can be made on any domain controller. However, some operations must be handled by one specific domain controller at a time to avoid conflicts. These special responsibilities are called the FSMO roles.&lt;/p&gt;
&lt;p&gt;There are five FSMO roles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two forest-wide roles&lt;/li&gt;
&lt;li&gt;Three domain-wide roles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s look at them all and explain what their function is:&lt;/p&gt;</description></item><item><title>Stop OneNote printer from being default printer in AVD</title><link>https://justinverstijnen.nl/stop-onenote-printer-from-being-default-printer-in-avd/</link><pubDate>Fri, 10 Jan 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/stop-onenote-printer-from-being-default-printer-in-avd/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/stop-onenote-printer-from-being-default-printer-in-avd-4308/jv-media-4308-b6757651a8fd.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;This can be very annoying for our end users and ourselves as we want real printers to be the default printer. Today I will show you how to delete this printer for current and new session hosts permanently.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-issue-itself"&gt;The issue itself&lt;a class="td-heading-self-link" href="#the-issue-itself" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The issue is that OneNote automatically creates a printer queue in Windows at installation for users to send information to OneNote. This will be something they use sometimes, but a physical printer will be used much more often. The most annoying part is that the software printer for OneNote will be marked as default printer every day which is annoying for the end users.&lt;/p&gt;</description></item><item><title>How to upload PowerShell script to Gallery with Github Actions</title><link>https://justinverstijnen.nl/how-to-upload-powershell-script-to-gallery-with-github-actions/</link><pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-upload-powershell-script-to-gallery-with-github-actions/</guid><description>&lt;p&gt;When using the PowerShell Gallery to upload and publish your scripts and PowerShell modules to the world it&amp;rsquo;s recommended to use Github Actions for CI/CD to automatically update your live packages on the PowerShell Gallery. At first, this looked somewhat complex to me but it&amp;rsquo;s relatively easy.&lt;/p&gt;
&lt;p&gt;On this page I will show how I&amp;rsquo;ve uploaded scripts from Github to the PowerShell Gallery with using a Github Action.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 30 minutes of your time&lt;/li&gt;
&lt;li&gt;Github account&lt;/li&gt;
&lt;li&gt;Powershell Gallery account&lt;/li&gt;
&lt;li&gt;A PowerShell script for testing to actually upload to the PowerShell Gallery&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="introduction-to-powershell-gallery"&gt;Introduction to PowerShell Gallery&lt;a class="td-heading-self-link" href="#introduction-to-powershell-gallery" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In short, the PowerShell Gallery is a public repository which contains PowerShell scripts and modules which all PowerShell users can download and install. All of this using some simple commands:&lt;/p&gt;</description></item><item><title>Azure VPN Gateway Maintenance - How to configure</title><link>https://justinverstijnen.nl/azure-vpn-gateway-maintenance-how-to-configure/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/azure-vpn-gateway-maintenance-how-to-configure/</guid><description>&lt;h2 id="why-configure-a-maintenance-configuration"&gt;Why configure a maintenance configuration?&lt;a class="td-heading-self-link" href="#why-configure-a-maintenance-configuration" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We would want to configure a maintenance configuration for our VPN gateway to Azure to prevent unwanted updates during business hours. Microsoft doesn’t publish when they perform updates to their infrastructure, so this could be any moment.&lt;/p&gt;
&lt;p&gt;Microsoft has to patch or replace their hardware regularly, and by configuring this maintenance configuration, we tell them: “Hey, please only do this for us in this window“. You could understand that configuring this is essential for availability reasons, but also don’t postpone updates too long for security and continuity reasons. My advice is to schedule these updates daily or weekly.&lt;/p&gt;</description></item><item><title>Set a domain alias for every user in Microsoft 365</title><link>https://justinverstijnen.nl/set-a-domain-alias-for-every-user-in-microsoft-365/</link><pubDate>Fri, 13 Dec 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/set-a-domain-alias-for-every-user-in-microsoft-365/</guid><description>&lt;h2 id="logging-in-exchange-online-powershell"&gt;Logging in Exchange Online Powershell&lt;a class="td-heading-self-link" href="#logging-in-exchange-online-powershell" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To configure a alias for every user, we need to login into Exchange Online Powershell:&lt;/p&gt;

 &lt;div class="td-card card border me-4"&gt;
&lt;div class="card-header code"&gt;
 &lt;strong&gt;POWERSHELL&lt;/strong&gt;
 &lt;/div&gt;
&lt;div class="card-body code p-0 m-0"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Connect-ExchangeOnline&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
 &lt;/div&gt;

&lt;p&gt;If you don&amp;rsquo;t have the module already installed on your computer, run the following command on an elevated window:&lt;/p&gt;

 &lt;div class="td-card card border me-4"&gt;
&lt;div class="card-header code"&gt;
 &lt;strong&gt;POWERSHELL&lt;/strong&gt;
 &lt;/div&gt;
&lt;div class="card-body code p-0 m-0"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Install-Module&lt;/span&gt; &lt;span class="n"&gt;ExchangeOnlineManagement&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
 &lt;/div&gt;

&lt;p&gt;Source: &lt;a href="https://www.powershellgallery.com/packages/ExchangeOnlineManagement/3.7.2"&gt;https://www.powershellgallery.com/packages/ExchangeOnlineManagement/3.7.2&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="adding-the-365-domain-alias-to-every-user"&gt;Adding the 365 domain alias to every user&lt;a class="td-heading-self-link" href="#adding-the-365-domain-alias-to-every-user" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;After succesfully logged in, run the following command:&lt;/p&gt;</description></item><item><title>Configure DNSSEC and SMTP DANE Microsoft 365</title><link>https://justinverstijnen.nl/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365/</link><pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365/</guid><description>&lt;h2 id="domain-name-system-security-extensions-dnssec"&gt;Domain Name System Security Extensions (DNSSEC)&lt;a class="td-heading-self-link" href="#domain-name-system-security-extensions-dnssec" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DNSSEC is a feature where a client can validate the DNS records received by a DNS server to ensure a record is originated from the DNS server and not manipulated by a Man in the Middle attack.&lt;/p&gt;
&lt;p&gt;DNSSEC is developed to prevent attacks like in the topology below:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/configure-dnssec-and-smtp-dane-with-exchange-online-microsoft-365-499/jv-media-499-1494f13639ce.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Here a attacker injects a fake DNS record and sends the user to a different IP-address, not the actual IP-address of the real website but a fake, mostly spoofed website. This way, a user sees for example &lt;a href="https://portal.azure.com"&gt;https://portal.azure.com&lt;/a&gt; in his address bar but is actually on a malicious webserver. This makes the user far more vulnerable to credential harvesting or phising attacks.&lt;/p&gt;</description></item><item><title>Automatic AVD/W365 Feed discovery for mobile apps</title><link>https://justinverstijnen.nl/automatic-avd-w365-feed-discovery-for-mobile-apps/</link><pubDate>Wed, 09 Oct 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/automatic-avd-w365-feed-discovery-for-mobile-apps/</guid><description>&lt;p&gt;Did you know we can automate this process? I will explain how to do this!&lt;/p&gt;
&lt;p&gt;Fast path for URL: &lt;a href="https://rdweb.wvd.microsoft.com/api/arm/feeddiscovery"&gt;https://rdweb.wvd.microsoft.com/api/arm/feeddiscovery&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-problem-explained"&gt;The problem explained&lt;a class="td-heading-self-link" href="#the-problem-explained" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When downloading the apps for your mobile devices, we get this window after installing:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/automatic-avd-w365-feed-discovery-for-mobile-apps-4725/jv-media-4725-cbe412d3fee2.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;After filling in our emailadress that has access to a Azure Virtual Desktop hostpool or Windows 365 machine, we still get this error:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;We couldn&amp;rsquo;t find any Workspaces associated with this email address. Try providing a URL instead.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now the client wants a URL, but we don&amp;rsquo;t want to fill in this URL for every device we configure. We can automate this through DNS.&lt;/p&gt;</description></item><item><title>Azure Stack HCI - Host your Virtual Desktops locally</title><link>https://justinverstijnen.nl/azure-stack-hci-host-your-virtual-desktops-locally-with-all-the-best-of-azure/</link><pubDate>Thu, 03 Oct 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/azure-stack-hci-host-your-virtual-desktops-locally-with-all-the-best-of-azure/</guid><description>&lt;h2 id="introduction-to-azure-stack-hci"&gt;Introduction to Azure Stack HCI&lt;a class="td-heading-self-link" href="#introduction-to-azure-stack-hci" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Azure Stack HCI is a solution for Microsoft Azure to host Azure resources on your own hardware and location. This sounds traditional but can help to boost your Azure resources for your customer and/or use case.&lt;/p&gt;
&lt;p&gt;For example, with Azure Stack HCI it is possible to host some Azure Virtual Desktop hosts in your own network to boost performance by decreasing latency. Also it is possible to use GPU enabled software on this.&lt;/p&gt;</description></item><item><title>How to solve DeletingCloudOnlyObjectNotAllowed error Entra Connect Sync</title><link>https://justinverstijnen.nl/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync/</guid><description>&lt;p&gt;Now and then we come across a problem with Entra Connect Sync which states &amp;ldquo;DeletingCloudOnlyObjectNotAllowed&amp;rdquo;. This error looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/how-to-solve-deletingcloudonlyobjectnotallowed-error-entra-connect-sync-5139/jv-media-5139-0b0f49fdf50a.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;This error will be shown if opening the Syncronization Service and email messages of this error will aso be sent to your tenant&amp;rsquo;s technical contact.&lt;/p&gt;
&lt;p&gt;In this guide, I will explain the cause of this problem and the options to solve the issue.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="cause-of-this-problem"&gt;Cause of this problem&lt;a class="td-heading-self-link" href="#cause-of-this-problem" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The cause of this problem is mostly an object that is first created cloud-only and then created in Active Directory, or a user that was synced previously but is deselected or deleted. Entra Connect Sync will not match the users correctly, and a the ImmutableId of the user in Entra still exists. In short; it still wants to sync a user that not exists.&lt;/p&gt;</description></item><item><title>Solved - Microsoft 365 tenant dehydrated</title><link>https://justinverstijnen.nl/microsoft-365-tenant-dehydrated/</link><pubDate>Fri, 20 Sep 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-365-tenant-dehydrated/</guid><description>&lt;h2 id="what-is-tenant-dehydrated"&gt;What is &amp;ldquo;Tenant dehydrated&amp;rdquo;?&lt;a class="td-heading-self-link" href="#what-is-tenant-dehydrated" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Microsoft sometimes will dehydrate Microsoft 365 tenants where things will not often change to the tenant. This closes some parts of the tenant for changing, even if you have Global Administrator permissions.&lt;/p&gt;
&lt;p&gt;The cause of this is for Microsoft to save on infrastructure cost. They will set the tenant in this sort of &amp;ldquo;sleep mode&amp;rdquo; where everything works properly but some configuration changes cannot be done. You can get this error with all sorts of changes:&lt;/p&gt;</description></item><item><title>Solved: August 2024 updates breaks GPO Item level targeting - user in group</title><link>https://justinverstijnen.nl/solved-august-2024-updates-breaks-gpo-item-level-targeting-user-in-group/</link><pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/solved-august-2024-updates-breaks-gpo-item-level-targeting-user-in-group/</guid><description>&lt;p&gt;If you are managing Windows Servers, Group Policies are a great way to distribute settings to your endpoints. However, a recent update of August 2024 in Windows Server 2022 and 2019 breaks user filtering in Group Policy (GPO) Item Level Targeting&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-problem-itself"&gt;The problem itself&lt;a class="td-heading-self-link" href="#the-problem-itself" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When applying printers, registery settings or drive maps to users, we use Group Policy Item level targeting to filter users so only users with a group membership gets the policy applied.&lt;/p&gt;</description></item><item><title>Solved - Windows Store applications on FSLogix/Azure Virtual Desktop</title><link>https://justinverstijnen.nl/microsoft-store-applications-on-azure-virtual-desktop-fslogix/</link><pubDate>Thu, 15 Aug 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-store-applications-on-azure-virtual-desktop-fslogix/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 15 minutes of your time&lt;/li&gt;
&lt;li&gt;An Azure Virtual Desktop or Remote Desktop Services environment with FSLogix&lt;/li&gt;
&lt;li&gt;Some basic knowledge about Windows, Azure and Active Directory&lt;/li&gt;
&lt;li&gt;Session host must have winget installed&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="default-behaviour-and-why-applications-disappear"&gt;Default behaviour and why applications disappear&lt;a class="td-heading-self-link" href="#default-behaviour-and-why-applications-disappear" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So the problem with Microsoft Store applications on any FSLogix based system is that the application can be installed like expected and they will work. After signing out of the session and logging in again, the applications will be gone. Under water, the applications are still installed on the computer, only Windows doesn&amp;rsquo;t know to show them to the user.&lt;/p&gt;</description></item><item><title>Migrate Group Policies to a new server or domain like a pro</title><link>https://justinverstijnen.nl/migrate-group-policy-objects-to-a-new-server-or-domain-like-a-pro/</link><pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/migrate-group-policy-objects-to-a-new-server-or-domain-like-a-pro/</guid><description>&lt;p&gt;Once in a while, we as IT administrators need to export and import our Group Policies of Windows Server to another server. Sometimes to copy a great policy you&amp;rsquo;ve built, or to migrate a customer to a new server.&lt;/p&gt;
&lt;p&gt;By default, the only option Microsoft has built in into Group Policy Management (gpmc.msc) is the backup option. This creates some administrative tasks.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-export-and-import-scripts"&gt;The Export and Import scripts&lt;a class="td-heading-self-link" href="#the-export-and-import-scripts" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I have created two scripts with Powershell that fully exports and imports all Group Policy Objects (GPOs). This with 2 seperate scripts. These can be found and downloaded from my Github page:&lt;/p&gt;</description></item><item><title>Optimize Windows 11 for Azure Virtual Desktop (AVD)</title><link>https://justinverstijnen.nl/optimize-windows-11-for-azure-virtual-desktop/</link><pubDate>Sun, 04 Aug 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/optimize-windows-11-for-azure-virtual-desktop/</guid><description>&lt;h2 id="introduction-to-the-group-policy-template"&gt;Introduction to the Group Policy template&lt;a class="td-heading-self-link" href="#introduction-to-the-group-policy-template" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Assuming you run your Azure Virtual Desktop environment by using the good old Active Directory (AD DS), you can manage the hosts with Group Policy.&lt;/p&gt;
&lt;p&gt;To help you optimizing the experience on Windows 11, I have a predefined group policy available with lots of settings to help optimizing your Windows 11 session hosts. This group policy follows the official Microsoft best practices, alongside with some of my own optimizations which has been proven good in production.&lt;/p&gt;</description></item><item><title>Create a Catch all mailbox in Exchange Online</title><link>https://justinverstijnen.nl/create-a-catch-all-mailbox-in-exchange-online/</link><pubDate>Thu, 11 Jul 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/create-a-catch-all-mailbox-in-exchange-online/</guid><description>&lt;p&gt;I also created a full customizable PowerShell script for this task which you can find here:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/M365CatchAllScript"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This way you can skip the guide for a faster solution. Otherwise, follow the steps below to do everything by hand and get a better understanding of the relevant steps needed.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Around 20 minutes of your time&lt;/li&gt;
&lt;li&gt;A Microsoft 365 environment&lt;/li&gt;
&lt;li&gt;Basic knowledge of Exchange Online&lt;/li&gt;
&lt;li&gt;Basic knowledge of PowerShell&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-does-this-solution-work"&gt;How does this solution work?&lt;a class="td-heading-self-link" href="#how-does-this-solution-work" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The solution described in this guide works with 3 components:&lt;/p&gt;</description></item><item><title>Microsoft 365 create a shared mailbox with same alias</title><link>https://justinverstijnen.nl/microsoft-365-exchange-online-create-shared-mailbox-with-same-alias/</link><pubDate>Thu, 06 Jun 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/microsoft-365-exchange-online-create-shared-mailbox-with-same-alias/</guid><description>&lt;h2 id="the-problem-of-multiple-shared-mailboxes-with-same-alias"&gt;The problem of multiple shared mailboxes with same alias&lt;a class="td-heading-self-link" href="#the-problem-of-multiple-shared-mailboxes-with-same-alias" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s say, we have a Microsoft 365 tenant with 3 domains;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;domain1.com&lt;/li&gt;
&lt;li&gt;domain2.com&lt;/li&gt;
&lt;li&gt;domain3.com&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you already have a mailbox called &amp;ldquo;&lt;a href="mailto:info@domain1.com"&gt;info@domain1.com&lt;/a&gt;&amp;rdquo; you are unable to create a &amp;ldquo;&lt;a href="mailto:info@domain2.com"&gt;info@domain2.com&lt;/a&gt;&amp;rdquo; in the portal. The cause of this problem is that every mailbox has a underlying &amp;ldquo;alias&amp;rdquo; and that this alias is the same when created in the portal. I have tried this in the Microsoft 365 admin center, Exchange Online admin center and Powershell. I get the following error:&lt;/p&gt;</description></item><item><title>Migrate data to SharePoint/OneDrive with SPMT</title><link>https://justinverstijnen.nl/sharepoint-data-migration/</link><pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/sharepoint-data-migration/</guid><description>&lt;p&gt;At the moment, SharePoint is a better option to store your files because it has the following benefits over a traditional SMB share:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Single permissions system (No SMB/NTFS permissions)&lt;/li&gt;
&lt;li&gt;High available by default&lt;/li&gt;
&lt;li&gt;No server infrastructure needed&lt;/li&gt;
&lt;li&gt;Users can work at the same file simultaneously&lt;/li&gt;
&lt;li&gt;Integration with Microsoft Teams&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-microsoft-sharepoint-migration-tool"&gt;The Microsoft SharePoint Migration Tool&lt;a class="td-heading-self-link" href="#the-microsoft-sharepoint-migration-tool" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Microsoft has a tool available which is free and which can migrate your local data to SharePoint. The targets you can specify are:&lt;/p&gt;</description></item><item><title>Using PowerShell remote sessions</title><link>https://justinverstijnen.nl/using-powershell-remote-sessions/</link><pubDate>Wed, 10 Apr 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/using-powershell-remote-sessions/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Management computer/Priveleged Access Workstation&lt;/li&gt;
&lt;li&gt;15-20 minutes of your time&lt;/li&gt;
&lt;li&gt;Management server and endpoints are Active Directory joined&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="starting-out"&gt;Starting out&lt;a class="td-heading-self-link" href="#starting-out" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before we can use Powershell to administer remote computers, we need to enable two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1. WinRM service (Endpoint):&lt;/strong&gt; This is a service in Windows that enables remote management. Powershell Remote relies greatly on this service so we have to enable this on the endpoint. By default it is disabled due to its security reasons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2. Trusted Hosts (Management server):&lt;/strong&gt; This has to be configured on your management server. This is a whitelist to protect against security threats who can abuse this option. Here you configure to what machines (name/IP-address) you can connect to.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="1-configure-windows-remote-management-winrm"&gt;1. Configure Windows Remote Management (WinRM)&lt;a class="td-heading-self-link" href="#1-configure-windows-remote-management-winrm" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On the endpoint you have to enable WinRM. This can be done manually with one simple command, or at scale with Group Policy.&lt;/p&gt;</description></item><item><title>How to enable Remote Group Policy update</title><link>https://justinverstijnen.nl/how-to-enable-remote-group-policy-update/</link><pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/how-to-enable-remote-group-policy-update/</guid><description>&lt;h2 id="group-policy-update-to-multiple-computers"&gt;Group Policy update to multiple computers&lt;a class="td-heading-self-link" href="#group-policy-update-to-multiple-computers" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sometimes you want to force a group policy update on multiple computers. Often when i am configuring Azure Virtual Desktop Session Hosts i need this option instead of logging into all hosts and executing the command manually.&lt;/p&gt;
&lt;p&gt;There is a option in Group Policy management to force a group policy update to all computers in a OU:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/how-to-enable-remote-group-policy-update-534/jv-media-534-b7954db3f633.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Actually, this only works after you configured this on the remote computers. The good part is, there is a way to do this with Group Policy!&lt;/p&gt;</description></item><item><title>Dynamic group for access to Windows 365</title><link>https://justinverstijnen.nl/dynamic-group-for-access-to-windows-365/</link><pubDate>Fri, 01 Dec 2023 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/dynamic-group-for-access-to-windows-365/</guid><description>&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Azure AD/Entra ID/Microsoft Graph Powershell module
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/nl-nl/powershell/module/azuread/?view=azureadps-2.0"&gt;https://learn.microsoft.com/nl-nl/powershell/module/azuread/?view=azureadps-2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;10 minutes of your time&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-are-dynamic-groups"&gt;What are Dynamic Groups?&lt;a class="td-heading-self-link" href="#what-are-dynamic-groups" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Dynamic Groups feature of Microsoft Entra is a great tool for auto-managing members of a group based on a single rule or collection of rules. Some examples of using dynamic groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Group for all users with the department &amp;ldquo;Office&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Group for all users with or without a specific attribute&lt;/li&gt;
&lt;li&gt;Group for all users with a specific license assigned&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dynamic group don&amp;rsquo;t need any manual assignment or un-assignment. Instead of that, members will be automatically added based on the rules. Great feature for automation purposes!&lt;/p&gt;</description></item><item><title>Dynamic Distribution Groups in Microsoft 365</title><link>https://justinverstijnen.nl/dynamic-distribution-groups-in-microsoft-365/</link><pubDate>Sat, 21 Oct 2023 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/dynamic-distribution-groups-in-microsoft-365/</guid><description>&lt;p&gt;Sometimes you want to have a distribution group with all your known mailboxes in it. For example an &lt;a href="mailto:employees@justinverstijnen.nl"&gt;employees@justinverstijnen.nl&lt;/a&gt; or &lt;a href="mailto:all@justinverstijnen.nl"&gt;all@justinverstijnen.nl&lt;/a&gt; address to send a mail company wide. A normal distribution group is possible, but requires a lot of manual maintenance, like adding and removing users.&lt;/p&gt;
&lt;p&gt;To apply a little more automation you can use the Dynamic Distribution Group feature of Exchange Online. This is a feature like the Dynamic groups feature of Microsoft Entra which automatically adds new user mailboxes after they are created to make sure every new employee is added automatically.&lt;/p&gt;</description></item><item><title>Change Evaluation version to Standard/Datacenter version</title><link>https://justinverstijnen.nl/windows-server-evaluation-to-standard/</link><pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/windows-server-evaluation-to-standard/</guid><description>&lt;p&gt;&lt;img src="https://sajvwebsiteblobstorage.blob.core.windows.net/blog/windows-server-evaluation-to-standard-71/jv-media-71-30eb3963ce1a.jpg" alt="Powershell script"&gt;&lt;/p&gt;
&lt;p&gt;When you install a fresh Windows Server installation from a .iso file, it will be installing the OS as a Evaluation version. When you want to activate the installation with a key you need to rebuild the OS and set the edition to Standard.&lt;/p&gt;
&lt;p&gt;Microsoft considers Standard and Standard Evaluation as different editions of Windows, because of this we have to change the edition before you can activate the installation. When you want to use the edition Datacenter, you can change the command to Datacenter which also works.&lt;/p&gt;</description></item><item><title>Bulk create Active Directory users with Powershell</title><link>https://justinverstijnen.nl/bulk-create-active-directory-users-with-powershell/</link><pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate><guid>https://justinverstijnen.nl/bulk-create-active-directory-users-with-powershell/</guid><description>&lt;p&gt;When it comes to creating users for Active Directory, especially in new implementations, you want to minimize the time needed to create the accounts. This is possible by creating the AD users with Powershell.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Minimal knowledge of Powershell&lt;/li&gt;
&lt;li&gt;An Active Directory environment&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="full-script-for-creating-ad-users"&gt;Full script for creating AD users&lt;a class="td-heading-self-link" href="#full-script-for-creating-ad-users" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Here is the full script including CSV that creates the ad users:&lt;/p&gt;
&lt;p&gt;&lt;a class="btn btn-primary" href="https://github.com/JustinVerstijnen/BulkCreateADDSUser"&gt;&lt;i class="fa-brands fa-github"&gt;&lt;/i&gt; Download script from GitHub&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>