<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>David Just</title>
    
    
    
    <link>/</link>
    <description>Recent content on David Just</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Fri, 23 Aug 2024 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Install Software With WinGet As System (UPDATE 2024)</title>
      <link>/post/intune-install-software-with-winget-updated-2024/</link>
      <pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate>
      
      <guid>/post/intune-install-software-with-winget-updated-2024/</guid>
      <description>
        
          &lt;img src=&#34;/post/intune-install-software-with-winget-updated-2024/winget_imagine.png&#34;/&gt;
          
        
        
        
          Background Back in 2022, after a lot of testing, I developed a way to install any machine wide installer in SYSTEM context using WinGet. For the most part this worked great, however I noticed that if I deployed an application targeted to a device group, the application would not reliable install during autopilot / OOBE. This is because the DesktopAppInstaller UWP appxpacakage needs to be installed under a user account before WinGet is available to use.
          
        
        </description>
    </item>
    
    <item>
      <title>Export all Bitlocker Keys from Entra ID</title>
      <link>/post/export-all-bitlocker-keys-from-entraid/</link>
      <pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>/post/export-all-bitlocker-keys-from-entraid/</guid>
      <description>
        
          
          
          
        
        
        
          Premise In an effort to help those affected by the massive outage caused by past Friday&amp;rsquo;s Crowdstrike Falcon update debalcle, I whipped up the following script. This script will export a list of all devices that are Entra ID joined or hybrid joined and any bitlocker keys present. This uses the Microsoft Graph PowerShell SDK, and the ImportExcel module to connect to Graph, retrieve the device list and export into an Excel spreadsheet in the root of your user profile.
          
        
        </description>
    </item>
    
    <item>
      <title>GDAP Partner Access With M365 PowerShell Modules</title>
      <link>/post/gdap-partner-access-with-powershell/</link>
      <pubDate>Mon, 17 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>/post/gdap-partner-access-with-powershell/</guid>
      <description>
        
          
          
          
        
        
        
          GDAP Partner Access With M365 PowerShell Modules We can utilize our partner delegated access to authenticate to clients directly without the need to use an admin account. We can authenticate as ourselves with delegated access.
Pre-requisites It is highly recommended to use PowerShell 7+ when using any of the following PowerShell modules. Microsoft has ceased all development on Windows PowerShell (5.1 the “blue” window). All current and future focus is on the cross-platform PowerShell core.
          
        
        </description>
    </item>
    
    <item>
      <title>The New Microsoft Store Experience in Intune</title>
      <link>/post/the-new-microsoft-store-experience-in-intune/</link>
      <pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/the-new-microsoft-store-experience-in-intune/</guid>
      <description>
        
          &lt;img src=&#34;/post/the-new-microsoft-store-experience-in-intune/store.png&#34;/&gt;
          
        
        
        
          Microsoft relecently released the new Microsoft Store integration for Intune. The new integration allows admins to easily search the store and deploy traditional APPX/UWP packages as well as a limited number of new Win32 app packages. WinGet (the Windows package manager)is the technology behind this new experience.
This new experience greatly simplifies application deployment through Intune and is intended to replace the Microsoft Store for Business which will be retired in the first half of next year.
          
        
        </description>
    </item>
    
    <item>
      <title>Introducing the M365 Report Tools PowerShell Module</title>
      <link>/post/introducing-the-m365-report-tools-powershell-module/index/</link>
      <pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/introducing-the-m365-report-tools-powershell-module/index/</guid>
      <description>
        
          
          
          
        
        
        
          The Why I often find the need to gather and extract data from various areas M365 for auditing or for project planning. I had the idea of putting together a PowerShell module containing wrapper functions for some of the most common reports I and colleagues ask for. I wanted to make the commands easy to discover and easy to use. I would like to introduce the M365.Report.Tools PowerShell module!
What can it do?
          
        
        </description>
    </item>
    
    <item>
      <title>Introducing the M365 Report Tools PowerShell Module</title>
      <link>/post/m365-report-tools-powershell-module/index/</link>
      <pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/m365-report-tools-powershell-module/index/</guid>
      <description>
        
          &lt;img src=&#34;/post/m365-report-tools-powershell-module/index/m365reporttools.png&#34;/&gt;
          
        
        
        
          The Why I often find the need to gather and extract data from various areas M365 for auditing or for project planning. I had the idea of putting together a PowerShell module containing wrapper functions for some of the most common reports I and colleagues ask for. I wanted to make the commands easy to discover and easy to use. I would like to introduce the M365.Report.Tools PowerShell module!
What can it do?
          
        
        </description>
    </item>
    
    <item>
      <title>Intune Endpoint Tools PowerShell Module</title>
      <link>/post/intune-endpoint-tools-powershell-module/</link>
      <pubDate>Fri, 30 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/intune-endpoint-tools-powershell-module/</guid>
      <description>
        
          &lt;img src=&#34;/post/intune-endpoint-tools-powershell-module/IntuneEndpointTools.png&#34;/&gt;
          
        
        
        
          I am proud to introduce the PowerShell module IntuneEndpointTools. This is the first PS module I have published to the PowerShell gallery.
IntuneEndpointTools contains a set of tools for managing and diagnosing Intune MDM on Windows endpoints designed with Intune support staff in mind. Easily perform diagnostic/troubleshooting operations such as getting the MDM diagnostic report, full diagnostic package, forcing a full sync to Intune, forcing reprocessing of assigned applications, and more!
          
        
        </description>
    </item>
    
    <item>
      <title>Keep Applications Updated with WinGet and Proactive Remediations</title>
      <link>/post/keep-applications-updated-with-winget-and-proactive-remediations/</link>
      <pubDate>Mon, 22 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/keep-applications-updated-with-winget-and-proactive-remediations/</guid>
      <description>
        
          &lt;img src=&#34;/post/keep-applications-updated-with-winget-and-proactive-remediations/WingetTools.png&#34;/&gt;
          
        
        
        
          The Why In a previous article , I demonstrated how to deploy applications to Intune using WinGet . I recieved a request to demonstrate how to use WinGet to update applications, and more importantly, how to run this on a schedule to keep applications updated. Since then, I found a really handy PowerShell wrapper module for WinGet called WinGetTools by Jeffrey Hicks. I made a small contribution to this module to allow it to work running under SYSTEM context.
          
        
        </description>
    </item>
    
    <item>
      <title>Update Business Voice to Teams Phone Licenses</title>
      <link>/post/update-business-voice-to-teams-phone-licenses/</link>
      <pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/update-business-voice-to-teams-phone-licenses/</guid>
      <description>
        
          &lt;img src=&#34;/post/update-business-voice-to-teams-phone-licenses/dontuse.png&#34;/&gt;
          
        
        
        
          Microsoft has announced the retirement of Business Voice licensing. If your tenant is still using Business Voice with Calling Plan or Business Voice without Calling Plan, you will need to switch to the new equivalent Teams Phone plan.
If you take a look at the Microsoft doc linked above, there are examples for how to update the licenses on bulk, however it is baffling Microsoft chose to demonstrate using the Azure AD PowerShell module, when the licensing portion of that module is slated to be retired as of today (6/30).
          
        
        </description>
    </item>
    
    <item>
      <title>AAD Token Broker Issues</title>
      <link>/post/eventid-1098-token-broker-operation-failed/</link>
      <pubDate>Wed, 29 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/eventid-1098-token-broker-operation-failed/</guid>
      <description>
        
          &lt;img src=&#34;/post/eventid-1098-token-broker-operation-failed/1098.png&#34;/&gt;
          
        
        
        
          Problem signs Outlook refuses to load, or a sign in window loops, opening and closing quickly. Outlook refuses to connect or send / recieve mail. The Windows store refuses to open. These are the initial symptoms I have seen when the AAD token broker &amp;lsquo;breaks&amp;rsquo; for lack of a better term. Event ID 1098 will be logged repeatedly in the Microsoft-Windows-AAD/Operational event log.
The fix Microsoft has a couple troubleshooting articles on event 1098 Event 1098 Cannot Create New Profilesand Event 1098 Error 0xcaa5001c.
          
        
        </description>
    </item>
    
    <item>
      <title>KB5014754 Certificate Authentication Woes with NDES/SCEP and Intune</title>
      <link>/post/kb5014754-certificate-woes-intune-ndes-scep/</link>
      <pubDate>Tue, 21 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/kb5014754-certificate-woes-intune-ndes-scep/</guid>
      <description>
        
          &lt;img src=&#34;/post/kb5014754-certificate-woes-intune-ndes-scep/KB.png&#34;/&gt;
          
        
        
        
          About 2 years ago, I configured NDES and SCEP for a client that was moving all of their workstations to AzureAD join only. NDES and SCEP work together to provide certificate enrollment for AzureAD only joined devices for authentication with Wi-Fi / VPN etc. This was the Microsoft techcommunity articleI followed to get this configued.
Fast foward to May 2022, in typical Microsoft fashion, a patchwas released to fix a security vulnerability to &amp;ldquo;address an elevation of privilege vulnerability that can occur when the Kerberos Distribution Center (KDC) is servicing a certificate-based authentication request.
          
        
        </description>
    </item>
    
    <item>
      <title>O365 License Report With Friendly Names Using The Microsoft Graph</title>
      <link>/post/o365-license-report-microsoft-graph/</link>
      <pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/o365-license-report-microsoft-graph/</guid>
      <description>
        
          &lt;img src=&#34;/post/o365-license-report-microsoft-graph/ConnectGraph.png&#34;/&gt;
          
        
        
        
          In a previous article, I demonstrated how to export a license report for all users withe the &amp;lsquo;friendly&amp;rsquo; license names using the AzureAD PowerShell module.
Since then, Microsoft has announced the coming retirement of the AzureAD API(and assocaiated PowerShell modules). You should be migrating all scripts over to using the Microsoft Graph PowerShell SDKHere I will provide a sample script to demonstrate how to export a license report for all users in Azure AD utilizing the Microsoft Graph.
          
        
        </description>
    </item>
    
    <item>
      <title>Backup and Reset Windows User Profile</title>
      <link>/post/backup-and-reset-windows-user-profile/</link>
      <pubDate>Thu, 12 May 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/backup-and-reset-windows-user-profile/</guid>
      <description>
        
          &lt;img src=&#34;/post/backup-and-reset-windows-user-profile/WindowsProfile.png&#34;/&gt;
          
        
        
        
          Premise If you use Windows long enough, eventually you will run into a broken user profile. Sometimes its the start menu that busted, or the Windows store wont open etc. If the typical recommendations of sfc / dism / re-register appx packages with PowerShell fails to remedy the issue, see if the issue is isolated to the user profile. Log into another Windows user account and see if the issue persists.
          
        
        </description>
    </item>
    
    <item>
      <title>Get Data from workstations and send to an Excel Table for free</title>
      <link>/post/power-automate-send-data-from-powershell-to-excel/</link>
      <pubDate>Tue, 03 May 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/power-automate-send-data-from-powershell-to-excel/</guid>
      <description>
        
          &lt;img src=&#34;/post/power-automate-send-data-from-powershell-to-excel/powerautomate.png&#34;/&gt;
          
        
        
        
          Premise There are times when I encounter a situation where I want to gather some data from workstations and store it in a spreadsheet / table ect. for tracking purposes. Recently I was working with a client to deploy a cloud printing solution. The on prem print environment was somewhat complex with multiple shared printers some of which were locked down to AD security groups. I needed a way to get a pre-deployment printer inventory for each workstation, then compare a post deployment inventory.
          
        
        </description>
    </item>
    
    <item>
      <title>Working with the Microsoft Graph PowerShell SDK</title>
      <link>/post/working-with-microsoft-graph-powershell-sdk/</link>
      <pubDate>Wed, 20 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/working-with-microsoft-graph-powershell-sdk/</guid>
      <description>
        
          &lt;img src=&#34;/post/working-with-microsoft-graph-powershell-sdk/graph.png&#34;/&gt;
          
        
        
        
          What is an API anyway? API stands for &amp;ldquo;Application Interface&amp;rdquo;. In simplest terms, APIs are services that bridge and allow two systems to interact. When we are talking about web services, such as those in M365, API usually refer to a REST API. I like this explanation from AWS:API architecture is usually explained in terms of client and server. The application sending the request is called the client, and the application sending the response is called the server.
          
        
        </description>
    </item>
    
    <item>
      <title>Helpful macOS Resources</title>
      <link>/macosresources/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>/macosresources/</guid>
      <description>
        
          
          
          
        
        
        
           Office Apps : https://macadmins.software/Useful tools : https://www.macadmin.info/#managementtoolsProfile Creator : https://github.com/ProfileCreator/ProfileCreatorBest Practices : https://techcommunity.microsoft.com/t5/intune-customer-success/best-practice-examples-for-configuring-macos-apps-with-microsoft/ba-p/2564255Deploying Office : https://docs.microsoft.com/en-us/deployoffice/mac/preferences-outlook#disable-skype-for-business-online-meetingsOneDrive config : https://docs.microsoft.com/en-us/onedrive/deploy-and-configure-on-macos#filesondemandenabledCustom onboarding splash screen : https://techcommunity.microsoft.com/t5/intune-customer-success/build-a-macos-onboarding-splash-screen-with-microsoft-endpoint/ba-p/2770980
          
        
        </description>
    </item>
    
    <item>
      <title>Intune for macOS Part 2 - Setup BYOD enrollment and Configure macOS Profiles</title>
      <link>/post/intune-for-macos-configure-profiles/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/intune-for-macos-configure-profiles/</guid>
      <description>
        
          &lt;img src=&#34;/post/intune-for-macos-configure-profiles/mac.jpeg&#34;/&gt;
          
        
        
        
          Setup BYOD Enrollment In part 1, we explored how to setup a macOS virtual machine for testing. Now lets look at actually configuring Intune. The first thing we need to do is get an Apple MDM push certificate.
Navigate to endpoint.microsoft.com &amp;lt; Devices &amp;lt; Enroll Devices &amp;lt; Apple Enrollment. Download the CSR. Follow the link “Create your MDM Push Certificate” Sign into your Apple ID (or create one if you do not have one) Click create certificate.
          
        
        </description>
    </item>
    
    <item>
      <title>About the author</title>
      <link>/about/</link>
      <pubDate>Sun, 17 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>/about/</guid>
      <description>
        
          
          
          
        
        
        
          Hi there My name is David Just. I am a technology enthusiast, nerd, father, and and husband. Welcome to my personal blog.
I have a passion for learning and sharing the things I have learned. As a former Systems Adminsitrator and now an Automation Engineer, I have found a passion for automation and coding, particularly with PowerShell. This blog is a place for me to jot down my thoughts and share interesting things along this journey of life.
          
        
        </description>
    </item>
    
    <item>
      <title>Intune Deploy Software with WinGet</title>
      <link>/post/intune-install-software-with-winget/</link>
      <pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/intune-install-software-with-winget/</guid>
      <description>
        
          &lt;img src=&#34;/post/intune-install-software-with-winget/winget.png&#34;/&gt;
          
        
        
        
          Ever since the WinGet package manager was announced, I wanted to find ways to leverage the package manager to simplify deploying software to endpoints. After doing some research and testing, I found that WinGet was unfortunately not designed to be run in SYSTEM context. It was designed to be run under a user account. There is an open issue on GitHub currently and many admins, myself included, would really like WinGet to be designed with enterprise use in mind.
          
        
        </description>
    </item>
    
    <item>
      <title>Configuring Intune for macOS part 1 - Setup a macOS VM</title>
      <link>/post/intune-for-macos-configure-macos-vm/</link>
      <pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>/post/intune-for-macos-configure-macos-vm/</guid>
      <description>
        
          &lt;img src=&#34;/post/intune-for-macos-configure-macos-vm/macdark.png&#34;/&gt;
          
        
        
        
          Premise
One of my clients has an Apple only environment. The client was previously managed with Jamf. Jamf is a great MDM platform for Apple devices and works really well however there are some downsides. First, the cost of Jamf is quite high, also while Jamf does support M365 condtional access and SSO with M365, it requires a bit more configuration than Intune does. My client was already paying for Enterprise mobility and Security licensing through M365 with Defender ATP for Endpoint so why not take advantage of the included Intune licensing?
          
        
        </description>
    </item>
    
    <item>
      <title>PowerShell Project - Get the Weather report</title>
      <link>/post/use-powershell-to-get-the-weather-report/</link>
      <pubDate>Tue, 26 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/use-powershell-to-get-the-weather-report/</guid>
      <description>
        
          
          
          
        
        
        
          I thought it would be a fun project to create a PowerShell function which would get the Weather forecast for a specified location.
I started searching online for free Weather REST APIs which I could query for the forecast. I found api.weather.gov which has a completely free and open REST API with complete documentation API Web Service (weather.gov). Checking the documentation, the REST endpoint to query the forecast is https://api.weather.gov/gridpoints/{office}/{gridX},{grid Y}/forecast.
          
        
        </description>
    </item>
    
    <item>
      <title>Export O365 User License Report with friendly names</title>
      <link>/post/o365-license-report-with-friendly-names/</link>
      <pubDate>Sun, 11 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/o365-license-report-with-friendly-names/</guid>
      <description>
        
          
          
          
        
        
        
          I was recently tasked with exporting a report for a client that detailed all users, their location and license assignment in Office 365. I knew the best way to get the job done was by writing a PowerShell script.
I did a quick search online and found lots of examples, however all the examples I found were using the deprecated &amp;ldquo;Microsoft Online&amp;rdquo; / MSOL PS module. I wanted to use the Azure AD module instead so I played around a bit to get the output I wanted.
          
        
        </description>
    </item>
    
    <item>
      <title>Collect data in an Azure Table with Power Automate and PowerShell</title>
      <link>/post/create-power-automate-flows-with-powershell-reports/</link>
      <pubDate>Sun, 04 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/create-power-automate-flows-with-powershell-reports/</guid>
      <description>
        
          
          
          
        
        
        
          If there is one thing I love it is automation. If you are a systems administrator, you have probably at some point needed to create some reports using PowerShell. Usually you would do this manually and export this to a CSV them hand off the report in an email or through SharePoint ect. But how can we automate this process?
While you could run PowerShell scripts as a scheduled task to fire off an email which is quick and dirty.
          
        
        </description>
    </item>
    
    <item>
      <title>Remove Document Redirection Policies over VPN</title>
      <link>/post/remove-document-redirection-vpn/</link>
      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/remove-document-redirection-vpn/</guid>
      <description>
        
          &lt;img src=&#34;/post/remove-document-redirection-vpn/DocRedCover.png&#34;/&gt;
          
        
        
        
          In today&amp;rsquo;s world of COVID with so many people working from home, more and more organizations are moving to cloud services for file storage. It used to be quite a common practice, at least in my experience to enable folder redirection for users on-prem. Trying to dismantle folder redirection, especially when our users are working remotely can prove to be a challenge. If you have ever attempted to remove a folder redirection GPO, you have undoubtedly discovered folder redirection policies only apply (and remove) at startup/user logon.
          
        
        </description>
    </item>
    
    <item>
      <title>Remove Document Redirection Policies over VPN</title>
      <link>/post/removedocred/</link>
      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/removedocred/</guid>
      <description>
        
          
          
          
        
        
        
          Document Redirection can be a serious PITA In today&amp;rsquo;s world of COVID with so many people working from home, more and more organizations are moving to cloud services for file storage. It used to be quite a common practice, at least in my experience to enable folder redirection for users on-prem. Trying to dismantle folder redirection, especially when our users are working remotely can prove to be a challenge. If you have ever attempted to remove a folder redirection GPO, you have undoubtedly discovered folder redirection policies only apply (and remove) at startup/user logon.
          
        
        </description>
    </item>
    
    <item>
      <title>Sync SharePoint Libraries with PowerShell</title>
      <link>/post/sync-sharepoint-libraries-powershell/index/</link>
      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/sync-sharepoint-libraries-powershell/index/</guid>
      <description>
        
          
          
          
        
        
        
          The Problem So you want to move your files to SharePoint, great! But your users don&amp;rsquo;t understand sharepoint, don&amp;rsquo;t wanna learn sharepoint and just want their file explorer experience.
There are a few ways we can go about syncing libraries for our users. We can set a group policy or Intune configuration to automatically sync a SharePoint library however there are some big caveats with this such as a 250~ url character limit.
          
        
        </description>
    </item>
    
    <item>
      <title>Sync SharePoint Libraries with PowerShell</title>
      <link>/post/syncsharepointlib/</link>
      <pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>/post/syncsharepointlib/</guid>
      <description>
        
          
          
          
        
        
        
          The Problem So you want to move your files to SharePoint, great! But your users don&amp;rsquo;t understand sharepoint, don&amp;rsquo;t wanna learn sharepoint and just want their file explorer experience.
There are a few ways we can go about syncing libraries for our users. We can set a group policy or Intune configuration to automatically sync a SharePoint library however there are some big caveats with this such as a 250~ url character limit.
          
        
        </description>
    </item>
    
  </channel>
</rss>