add: error handling for tests that produce large output
This commit is contained in:
@@ -166,28 +166,12 @@ function Export-M365SecurityAuditTable {
|
||||
|
||||
if ($ExportOriginalTests) {
|
||||
# Define the test numbers to check
|
||||
$testNumbersToCheck = "1.1.1", "1.3.1", "6.1.2", "6.1.3", "7.3.4"
|
||||
# Iterate through the AuditResults and check the Details length for the specified test numbers
|
||||
for ($i = 0; $i -lt $AuditResults.Count; $i++) {
|
||||
$auditResult = $AuditResults[$i]
|
||||
if ($auditResult.Rec -in $testNumbersToCheck) {
|
||||
if ($auditResult.Details.Length -gt 30000) {
|
||||
if ($exportedTests -contains $auditResult.Rec) {
|
||||
Write-Information "The test result for $($auditResult.Rec) is too large for CSV and was included in the export. Check the exported files."
|
||||
$auditResult.Details = "The test result is too large to be exported to CSV. Use the audit result and the export function for full output."
|
||||
}
|
||||
else {
|
||||
Write-Information "The test result for $($auditResult.Rec) is too large for CSV."
|
||||
$auditResult.Details = "The test result is too large to be exported to CSV. Use the audit result and the export function for full output."
|
||||
}
|
||||
# Update the AuditResults array with the modified auditResult
|
||||
$AuditResults[$i] = $auditResult
|
||||
}
|
||||
}
|
||||
}
|
||||
# Export the modified audit results to a CSV file
|
||||
$TestNumbersToCheck = "1.1.1", "1.3.1", "6.1.2", "6.1.3", "7.3.4"
|
||||
|
||||
# Check for large details and update the AuditResults array
|
||||
$updatedAuditResults = Get-ExceededLengthResultDetail -AuditResults $AuditResults -TestNumbersToCheck $TestNumbersToCheck -ExportedTests $exportedTests -DetailsLengthLimit 30000
|
||||
$originalFileName = "$ExportPath\$timestamp`_M365FoundationsAudit.csv"
|
||||
$AuditResults | Export-Csv -Path $originalFileName -NoTypeInformation
|
||||
$updatedAuditResults | Export-Csv -Path $originalFileName -NoTypeInformation
|
||||
}
|
||||
}
|
||||
elseif ($OutputTestNumber) {
|
||||
|
||||
@@ -286,6 +286,16 @@ function Invoke-M365SecurityAudit {
|
||||
# Call the private function to calculate and display results
|
||||
Measure-AuditResult -AllAuditResults $allAuditResults -FailedTests $script:FailedTests
|
||||
# Return all collected audit results
|
||||
# Define the test numbers to check
|
||||
$TestNumbersToCheck = "1.1.1", "1.3.1", "6.1.2", "6.1.3", "7.3.4"
|
||||
|
||||
# Check for large details in the audit results
|
||||
$exceedingTests = Get-ExceededLengthResultDetail -AuditResults $allAuditResults -TestNumbersToCheck $TestNumbersToCheck -ReturnExceedingTestsOnly -DetailsLengthLimit 30000
|
||||
if ($exceedingTests.Count -gt 0) {
|
||||
Write-Information "The following tests exceeded the details length limit: $($exceedingTests -join ', ')" -InformationAction Continue
|
||||
Write-Host "(Assuming the results were instantiated. Ex: `$object = invoke-M365SecurityAudit) Use the following command and adjust as neccesary to view the full details of the test results:" -ForegroundColor Gray
|
||||
Write-Host "Export-M365SecurityAuditTable -ExportAllTests -AuditResults `$object -ExportPath `"C:\temp`" -ExportOriginalTests" -ForegroundColor Green
|
||||
}
|
||||
return $allAuditResults.ToArray() | Sort-Object -Property Rec
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user