add: paramters to get-requredmodules and updated public functions

This commit is contained in:
DrIOS
2024-06-08 11:51:54 -05:00
parent 4f8df29c72
commit a5d26917d3
3 changed files with 41 additions and 13 deletions

View File

@@ -1,4 +1,15 @@
function Get-RequiredModule {
[CmdletBinding(DefaultParameterSetName = 'AuditFunction')]
param (
[Parameter(Mandatory = $true, ParameterSetName = 'AuditFunction')]
[switch]$AuditFunction,
[Parameter(Mandatory = $true, ParameterSetName = 'SyncFunction')]
[switch]$SyncFunction
)
switch ($PSCmdlet.ParameterSetName) {
'AuditFunction' {
return @(
@{ ModuleName = "ExchangeOnlineManagement"; RequiredVersion = "3.3.0" },
@{ ModuleName = "AzureAD"; RequiredVersion = "2.0.2.182" },
@@ -13,3 +24,13 @@ function Get-RequiredModule {
@{ ModuleName = "MicrosoftTeams"; RequiredVersion = "5.5.0" }
)
}
'SyncFunction' {
return @(
@{ ModuleName = "ImportExcel"; RequiredVersion = "7.8.9" }
)
}
default {
throw "Please specify either -AuditFunction or -SyncFunction switch."
}
}
}

View File

@@ -65,7 +65,7 @@ function Invoke-M365SecurityAudit {
}
# Ensure required modules are installed
if (!($NoModuleCheck)) {
$requiredModules = Get-RequiredModule
$requiredModules = Get-RequiredModule -AuditFunction
foreach ($module in $requiredModules) {
Assert-ModuleAvailability -ModuleName $module.ModuleName -RequiredVersion $module.RequiredVersion -SubModuleName $module.SubModuleName
}

View File

@@ -49,6 +49,12 @@ function Sync-CISExcelAndCsvData {
)
process {
# Verify ImportExcel module is available
$requiredModules = Get-RequiredModule -SyncFunction
foreach ($module in $requiredModules) {
Assert-ModuleAvailability -ModuleName $module.ModuleName -RequiredVersion $module.RequiredVersion -SubModuleName $module.SubModuleName
}
# Merge Excel and CSV data
$mergedData = Merge-CISExcelAndCsvData -ExcelPath $ExcelPath -WorksheetName $WorksheetName -CsvPath $CsvPath
@@ -61,3 +67,4 @@ function Sync-CISExcelAndCsvData {
}
}
}