diff --git a/CHANGELOG.md b/CHANGELOG.md index d19f350..dd98db5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,28 +6,6 @@ The format is based on and uses the types of changes according to [Keep a Change ### Added -- Adds new CSV for PowerShell commands and updates PnP update check handling -- Introduces a new CSV file listing various PowerShell commands for different Microsoft services. -- Updates the `Invoke-M365SecurityAudit` script to temporarily disable PnP PowerShell update checks during execution and restores the original setting afterward. - -## [v0.1.28] - 2025-01-14 - -### Fixed - -- Get-SPOSite command to return all but voided output for no code runs (Ex: PowerAutomate) - -## [0.1.27] - 2025-01-13 - -### Added - -- Added additional error handling to connect function to identify problematic steps when they occur. -- Added new method of verifying spo tenant for Connect-SPOService branch of connect function. -- Added method to avoid "assembly already loaded" error in PNP Powershell function on first run, subsequent runs in the same session will still throw the error. - -## [0.1.26] - 2024-08-04 - -### Added - - Link to App Authentication documentation in `New-M365SecurityAuditAuthObject` help file. - TestDefinitions-v4.0.0.csv file to the helper folder for version choices. - Test Definition Placeholders @@ -40,12 +18,29 @@ The format is based on and uses the types of changes according to [Keep a Change - Rec numbers to include and exclude rec numbers for version 4.0.0 so the 'validate set' works correctly. - Get-PhishPolicyCompliance and Get-ScopeOverlap private functions for 2.1.7 v4. - Test-PhishPolicyCompliance4 function for 2.1.7 v4. +- Adds new CSV for PowerShell commands and updates PnP update check handling +- Introduces a new CSV file listing various PowerShell commands for different Microsoft services. +- Updates the `Invoke-M365SecurityAudit` script to temporarily disable PnP PowerShell update checks during execution and restores the original setting afterward. ### Fixed - Fixed Pnp PowerShell MgGraph assembly load error with workaround to load the MgGraph assembly as soon as it's imported with a call to Get-MgGroup. - Phish policy test to return if highest priority policy conforms to the benchmark. +## [v0.1.28] - 2025-01-14 + +### Fixed + +- Get-SPOSite command to return all but voided output for no code runs (Ex: PowerAutomate) + +## [0.1.27] - 2025-01-13 + +### Added + +- Added additional error handling to connect function to identify problematic steps when they occur. +- Added new method of verifying spo tenant for Connect-SPOService branch of connect function. +- Added method to avoid "assembly already loaded" error in PNP Powershell function on first run, subsequent runs in the same session will still throw the error. + ## [0.1.26] - 2024-08-04 ### Added diff --git a/source/tests/Test-AdminAccountLicenses.ps1 b/source/tests/Test-AdminAccountLicenses.ps1 index 71822bf..11f2040 100644 --- a/source/tests/Test-AdminAccountLicenses.ps1 +++ b/source/tests/Test-AdminAccountLicenses.ps1 @@ -7,19 +7,19 @@ function Test-AdminAccountLicenses { # Condition B: The account is assigned a valid license (e.g., Microsoft Entra ID P1 or P2). # Condition C: The administrative account does not have any other application assignments (only valid licenses). $validLicenses = @('AAD_PREMIUM', 'AAD_PREMIUM_P2') - $RecNum = "1.1.4" + $RecNum = '1.1.4' Write-Verbose "Starting Test-AdministrativeAccountCompliance with Rec: $RecNum" } process { try { # Retrieve admin roles, assignments, and user details including licenses - Write-Verbose "Retrieving admin roles, assignments, and user details including licenses" + Write-Verbose 'Retrieving admin roles, assignments, and user details including licenses' $Report = Get-CISMgOutput -Rec $RecNum - $NonCompliantUsers = $Report | Where-Object {$_.License -notin $validLicenses} + $NonCompliantUsers = $Report | Where-Object { $_.License -notin $validLicenses } # Generate failure reasons - Write-Verbose "Generating failure reasons for non-compliant users" + Write-Verbose 'Generating failure reasons for non-compliant users' $failureReasons = $nonCompliantUsers | ForEach-Object { - "$($_.DisplayName)|$($_.UserPrincipalName)|$(if ($_.License) {$_.License}else{"No licenses found"})" + "$($_.DisplayName)|$($_.UserPrincipalName)|$(if ($_.License) {$_.License}else{'No licenses found'})" } $failureReasons = $failureReasons -join "`n" $failureReason = if ($nonCompliantUsers) { @@ -30,7 +30,7 @@ function Test-AdminAccountLicenses { } $result = $nonCompliantUsers.Count -eq 0 $status = if ($result) { 'Pass' } else { 'Fail' } - $details = if ($nonCompliantUsers) { "DisplayName | UserPrincipalName | License`n$failureReasons" } else { "N/A" } + $details = if ($nonCompliantUsers) { "DisplayName | UserPrincipalName | License`n$failureReasons" } else { 'N/A' } Write-Verbose "Assessment completed. Result: $status" # Create the parameter splat $params = @{ @@ -52,4 +52,4 @@ function Test-AdminAccountLicenses { return $auditResult } } - # $validLicenses = @('AAD_PREMIUM', 'AAD_PREMIUM_P2') \ No newline at end of file +# $validLicenses = @('AAD_PREMIUM', 'AAD_PREMIUM_P2') \ No newline at end of file