docs: finalize error handling standard
This commit is contained in:
@@ -15,7 +15,10 @@ function Get-ExceededLengthResultDetail {
|
|||||||
[Parameter(Mandatory = $true, ParameterSetName = 'ReturnExceedingTests')]
|
[Parameter(Mandatory = $true, ParameterSetName = 'ReturnExceedingTests')]
|
||||||
[switch]$ReturnExceedingTestsOnly,
|
[switch]$ReturnExceedingTestsOnly,
|
||||||
|
|
||||||
[int]$DetailsLengthLimit = 30000
|
[int]$DetailsLengthLimit = 30000,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true, ParameterSetName = 'UpdateArray')]
|
||||||
|
[int]$PreviewLineCount = 50
|
||||||
)
|
)
|
||||||
|
|
||||||
$exceedingTests = @()
|
$exceedingTests = @()
|
||||||
@@ -28,11 +31,14 @@ function Get-ExceededLengthResultDetail {
|
|||||||
if ($ReturnExceedingTestsOnly) {
|
if ($ReturnExceedingTestsOnly) {
|
||||||
$exceedingTests += $auditResult.Rec
|
$exceedingTests += $auditResult.Rec
|
||||||
} else {
|
} else {
|
||||||
|
$previewLines = ($auditResult.Details -split '\r?\n' | Select-Object -First $PreviewLineCount) -join "`n"
|
||||||
|
$message = "The test result is too large to be exported to CSV. Use the audit result and the export function for full output.`n`nPreview:`n$previewLines"
|
||||||
|
|
||||||
if ($ExportedTests -contains $auditResult.Rec) {
|
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."
|
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."
|
$auditResult.Details = $message
|
||||||
} else {
|
} else {
|
||||||
$auditResult.Details = "The test result is too large to be exported to CSV. Use the audit result and the export function for full output."
|
$auditResult.Details = $message
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -153,7 +153,7 @@ function Export-M365SecurityAuditTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($exportedTests.Count -gt 0) {
|
if ($exportedTests.Count -gt 0) {
|
||||||
Write-Information "The following tests were included in the export: $($exportedTests -join ', ')" -InformationAction Continue
|
Write-Information "The following tests were exported: $($exportedTests -join ', ')" -InformationAction Continue
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($ExportOriginalTests) {
|
if ($ExportOriginalTests) {
|
||||||
@@ -169,7 +169,7 @@ function Export-M365SecurityAuditTable {
|
|||||||
$TestNumbersToCheck = "1.1.1", "1.3.1", "6.1.2", "6.1.3", "7.3.4"
|
$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
|
# Check for large details and update the AuditResults array
|
||||||
$updatedAuditResults = Get-ExceededLengthResultDetail -AuditResults $AuditResults -TestNumbersToCheck $TestNumbersToCheck -ExportedTests $exportedTests -DetailsLengthLimit 30000
|
$updatedAuditResults = Get-ExceededLengthResultDetail -AuditResults $AuditResults -TestNumbersToCheck $TestNumbersToCheck -ExportedTests $exportedTests -DetailsLengthLimit 30000 -PreviewLineCount 25
|
||||||
$originalFileName = "$ExportPath\$timestamp`_M365FoundationsAudit.csv"
|
$originalFileName = "$ExportPath\$timestamp`_M365FoundationsAudit.csv"
|
||||||
$updatedAuditResults | Export-Csv -Path $originalFileName -NoTypeInformation
|
$updatedAuditResults | Export-Csv -Path $originalFileName -NoTypeInformation
|
||||||
}
|
}
|
||||||
|
@@ -293,7 +293,7 @@ function Invoke-M365SecurityAudit {
|
|||||||
$exceedingTests = Get-ExceededLengthResultDetail -AuditResults $allAuditResults -TestNumbersToCheck $TestNumbersToCheck -ReturnExceedingTestsOnly -DetailsLengthLimit 30000
|
$exceedingTests = Get-ExceededLengthResultDetail -AuditResults $allAuditResults -TestNumbersToCheck $TestNumbersToCheck -ReturnExceedingTestsOnly -DetailsLengthLimit 30000
|
||||||
if ($exceedingTests.Count -gt 0) {
|
if ($exceedingTests.Count -gt 0) {
|
||||||
Write-Information "The following tests exceeded the details length limit: $($exceedingTests -join ', ')" -InformationAction Continue
|
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 "(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 DarkCyan
|
||||||
Write-Host "Export-M365SecurityAuditTable -ExportAllTests -AuditResults `$object -ExportPath `"C:\temp`" -ExportOriginalTests" -ForegroundColor Green
|
Write-Host "Export-M365SecurityAuditTable -ExportAllTests -AuditResults `$object -ExportPath `"C:\temp`" -ExportOriginalTests" -ForegroundColor Green
|
||||||
}
|
}
|
||||||
return $allAuditResults.ToArray() | Sort-Object -Property Rec
|
return $allAuditResults.ToArray() | Sort-Object -Property Rec
|
||||||
|
Reference in New Issue
Block a user