diff --git a/source/tests/Test-LinkSharingRestrictions.ps1 b/source/tests/Test-LinkSharingRestrictions.ps1 index b0c14b0..a2bcaba 100644 --- a/source/tests/Test-LinkSharingRestrictions.ps1 +++ b/source/tests/Test-LinkSharingRestrictions.ps1 @@ -1,42 +1,54 @@ function Test-LinkSharingRestrictions { [CmdletBinding()] param ( + # Aligned # Define your parameters here # Test behavior in prod ) begin { - # Initialization code - - $auditResult = [CISAuditResult]::new() + # Dot source the class script if necessary + #. .\source\Classes\CISAuditResult.ps1 + # Initialization code, if needed } process { # 7.2.7 (L1) Ensure link sharing is restricted in SharePoint and OneDrive - $SPOTenantLinkSharing = Get-SPOTenant | Select-Object DefaultSharingLinkType - $isLinkSharingRestricted = $SPOTenantLinkSharing.DefaultSharingLinkType -eq 'Direct' # Or 'SpecificPeople' as per the recommendation - # Populate the auditResult object with the required properties + # Retrieve link sharing configuration for SharePoint and OneDrive + $SPOTenantLinkSharing = Get-SPOTenant | Select-Object DefaultSharingLinkType + $isLinkSharingRestricted = $SPOTenantLinkSharing.DefaultSharingLinkType -eq 'Direct' # Or 'SpecificPeople' as per the recommendation + + # Prepare failure reasons and details based on compliance + $failureReasons = if (-not $isLinkSharingRestricted) { + "Link sharing is not restricted to 'Specific people'. Current setting: $($SPOTenantLinkSharing.DefaultSharingLinkType)" + } + else { + "N/A" + } + + $details = "DefaultSharingLinkType: $($SPOTenantLinkSharing.DefaultSharingLinkType)" + + # Create and populate the CISAuditResult object + $auditResult = [CISAuditResult]::new() + $auditResult.Status = if ($isLinkSharingRestricted) { "Pass" } else { "Fail" } + $auditResult.ELevel = "E3" + $auditResult.ProfileLevel = "L1" + $auditResult.Rec = "7.2.7" + $auditResult.RecDescription = "Ensure link sharing is restricted in SharePoint and OneDrive" $auditResult.CISControlVer = "v8" $auditResult.CISControl = "3.3" $auditResult.CISDescription = "Configure Data Access Control Lists" - - $auditResult.Rec = "7.2.7" - $auditResult.ELevel = "E3" - $auditResult.ProfileLevel = "L1" $auditResult.IG1 = $true $auditResult.IG2 = $true $auditResult.IG3 = $true - $auditResult.RecDescription = "Ensure link sharing is restricted in SharePoint and OneDrive" - $auditResult.Result = $isLinkSharingRestricted - $auditResult.Details = "DefaultSharingLinkType: $($SPOTenantLinkSharing.DefaultSharingLinkType)" - $auditResult.FailureReason = if (-not $isLinkSharingRestricted) { "Link sharing is not restricted to 'Specific people'. Current setting: $($SPOTenantLinkSharing.DefaultSharingLinkType)" } else { "N/A" } - $auditResult.Status = if ($isLinkSharingRestricted) { "Pass" } else { "Fail" } + $auditResult.Details = $details + $auditResult.FailureReason = $failureReasons } end { - # Return auditResult + # Return the audit result return $auditResult } -} +} \ No newline at end of file