From 21215208dfa391c4fdf1ac81c9f7ff2067f92aa1 Mon Sep 17 00:00:00 2001 From: Med Date: Mon, 15 Sep 2025 11:19:00 +0200 Subject: [PATCH 1/2] Update FreeBusyChecker.ps1 The script should still run if the -Org parameter is set to check ExOnPremise Only, e.g: Running on an exchange server with no direct outbound connection to Entra/EXO.. or modules cannot be installed. --- Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 b/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 index b26835b44a..829af078d1 100644 --- a/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 +++ b/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 @@ -74,7 +74,6 @@ This cmdlet will run the Free Busy Checker Script for Exchange On-Premises Avail #> #region Properties and Parameters -#Requires -Module ExchangeOnlineManagement #Requires -Module ActiveDirectory [CmdletBinding(DefaultParameterSetName = "FreeBusyInfo_OP", SupportsShouldProcess)] @@ -119,6 +118,14 @@ begin { $Script:Server = hostname $Script:startingDate = (Get-Date -Format yyyyMMdd_HHmmss) $Script:htmlFile = "$PSScriptRoot\FBCheckerOutput_$($Script:startingDate).html" +#Check if EXO module is not installed, if so, Import it. + if (-not $Org -or ($Org -eq 'ExchangeOnline')) { + if (-not (Get-Module -ListAvailable -Name ExchangeOnlineManagement)) { + Write-Error "The ExchangeOnlineManagement module is required but not installed. + Install it with: Install-Module ExchangeOnlineManagement" + return + } + Import-Module ExchangeOnlineManagement -ErrorAction Stop} loadingParameters #Parameter input From 2e2ff856977bcf5252e024e647ebcf4160e7bf1a Mon Sep 17 00:00:00 2001 From: Mohamed Elhammouti Date: Fri, 17 Oct 2025 01:14:16 +0200 Subject: [PATCH 2/2] Updated comment for EXO module import check --- Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 b/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 index 829af078d1..d9ffdd5c6a 100644 --- a/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 +++ b/Diagnostics/FreeBusyChecker/FreeBusyChecker.ps1 @@ -118,7 +118,8 @@ begin { $Script:Server = hostname $Script:startingDate = (Get-Date -Format yyyyMMdd_HHmmss) $Script:htmlFile = "$PSScriptRoot\FBCheckerOutput_$($Script:startingDate).html" -#Check if EXO module is not installed, if so, Import it. + +#Check if EXO module is required and available, if so, import it. if (-not $Org -or ($Org -eq 'ExchangeOnline')) { if (-not (Get-Module -ListAvailable -Name ExchangeOnlineManagement)) { Write-Error "The ExchangeOnlineManagement module is required but not installed.