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 { 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 @( return @(
@{ ModuleName = "ExchangeOnlineManagement"; RequiredVersion = "3.3.0" }, @{ ModuleName = "ExchangeOnlineManagement"; RequiredVersion = "3.3.0" },
@{ ModuleName = "AzureAD"; RequiredVersion = "2.0.2.182" }, @{ ModuleName = "AzureAD"; RequiredVersion = "2.0.2.182" },
@@ -12,4 +23,14 @@ function Get-RequiredModule {
@{ ModuleName = "Microsoft.Online.SharePoint.PowerShell"; RequiredVersion = "16.0.24009.12000" }, @{ ModuleName = "Microsoft.Online.SharePoint.PowerShell"; RequiredVersion = "16.0.24009.12000" },
@{ ModuleName = "MicrosoftTeams"; RequiredVersion = "5.5.0" } @{ 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 # Ensure required modules are installed
if (!($NoModuleCheck)) { if (!($NoModuleCheck)) {
$requiredModules = Get-RequiredModule $requiredModules = Get-RequiredModule -AuditFunction
foreach ($module in $requiredModules) { foreach ($module in $requiredModules) {
Assert-ModuleAvailability -ModuleName $module.ModuleName -RequiredVersion $module.RequiredVersion -SubModuleName $module.SubModuleName Assert-ModuleAvailability -ModuleName $module.ModuleName -RequiredVersion $module.RequiredVersion -SubModuleName $module.SubModuleName
} }

View File

@@ -49,6 +49,12 @@ function Sync-CISExcelAndCsvData {
) )
process { 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 # Merge Excel and CSV data
$mergedData = Merge-CISExcelAndCsvData -ExcelPath $ExcelPath -WorksheetName $WorksheetName -CsvPath $CsvPath $mergedData = Merge-CISExcelAndCsvData -ExcelPath $ExcelPath -WorksheetName $WorksheetName -CsvPath $CsvPath
@@ -61,3 +67,4 @@ function Sync-CISExcelAndCsvData {
} }
} }
} }