From 20ee994ebc68302ecd18319a49b84237d5fa3678 Mon Sep 17 00:00:00 2001 From: DrIOS <58635327+DrIOSX@users.noreply.github.com> Date: Tue, 28 May 2024 10:31:06 -0500 Subject: [PATCH] fix: 1.3.3 aligned with test-template --- .../tests/Test-ExternalSharingCalendars.ps1 | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/source/tests/Test-ExternalSharingCalendars.ps1 b/source/tests/Test-ExternalSharingCalendars.ps1 index d721a14..17e6dce 100644 --- a/source/tests/Test-ExternalSharingCalendars.ps1 +++ b/source/tests/Test-ExternalSharingCalendars.ps1 @@ -1,17 +1,21 @@ function Test-ExternalSharingCalendars { [CmdletBinding()] param ( + # Aligned # Parameters can be added if needed ) begin { - # Dot source the class script + # Dot source the class script if necessary + # . .\source\Classes\CISAuditResult.ps1 - $auditResults = @() + # Initialization code, if needed } process { # 1.3.3 (L2) Ensure 'External sharing' of calendars is not available (Automated) + + # Retrieve sharing policies related to calendar sharing $sharingPolicies = Get-SharingPolicy | Where-Object { $_.Domains -like '*CalendarSharing*' } # Check if calendar sharing is disabled in all applicable policies @@ -24,30 +28,41 @@ function Test-ExternalSharingCalendars { } } - # Create an instance of CISAuditResult and populate it + # Prepare failure reasons and details based on compliance + $failureReasons = if (-not $isExternalSharingDisabled) { + "Calendar sharing with external users is enabled in one or more policies." + } + else { + "N/A" + } + + $details = if ($isExternalSharingDisabled) { + "Calendar sharing with external users is disabled." + } + else { + "Enabled Sharing Policies: $($sharingPolicyDetails -join ', ')" + } + + # Create and populate the CISAuditResult object $auditResult = [CISAuditResult]::new() $auditResult.Rec = "1.3.3" $auditResult.RecDescription = "Ensure 'External sharing' of calendars is not available" $auditResult.ELevel = "E3" $auditResult.ProfileLevel = "L2" - # The following IG values are placeholders. Replace with actual values when known. $auditResult.IG1 = $false $auditResult.IG2 = $true $auditResult.IG3 = $true $auditResult.CISControlVer = "v8" - # Placeholder for CIS Control, to be replaced with the actual value when available $auditResult.CISControl = "4.8" $auditResult.CISDescription = "Uninstall or Disable Unnecessary Services on Enterprise Assets and Software" $auditResult.Result = $isExternalSharingDisabled - $auditResult.Details = if ($isExternalSharingDisabled) { "Calendar sharing with external users is disabled." } else { "Enabled Sharing Policies: $($sharingPolicyDetails -join ', ')" } - $auditResult.FailureReason = if ($isExternalSharingDisabled) { "N/A" } else { "Calendar sharing with external users is enabled in one or more policies." } + $auditResult.Details = $details + $auditResult.FailureReason = $failureReasons $auditResult.Status = if ($isExternalSharingDisabled) { "Pass" } else { "Fail" } - - $auditResults += $auditResult } end { - # Return auditResults - return $auditResults + # Return the audit result + return $auditResult } }