Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/PublishToGallery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ jobs:
Write-Verbose -Message $_
}
}
- name: Build Dll Files
shell: pwsh
run: |
& ./Utilities/Build-DllFiles.ps1 -Configuration Release
- name: Publish
shell: powershell
env:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/Unit Tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ jobs:
Install-PSResource -Name PSDesiredStateConfiguration -Scope AllUsers -TrustRepository
Install-PSResource -Name Pester -Scope AllUsers -TrustRepository
[System.Environment]::SetEnvironmentVariable('M365DSCTelemetryEnabled', $false, [System.EnvironmentVariableTarget]::Machine);
- name: Build Dll Files
shell: pwsh
run: |
& ./Utilities/Build-DllFiles.ps1 -Configuration Release
- name: Run Quality Checks
shell: pwsh
run: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
.vs
.psproj
.sln
Modules/Microsoft365DSC/Dependencies/Assemblies/*.dll
Modules/Microsoft365DSC/Dependencies/Assemblies/*.pdb
Modules/Microsoft365DSC/Dependencies/Assemblies/*.xml
Modules/Microsoft365DSC/DscResource.Tests
Modules/Microsoft365DSC/DscResource.Tests/*
node_modules
Expand Down
30 changes: 27 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,32 @@

# UNRELEASED

* AADConditionalAccessPolicy
* Fixed an issue where arrays could contain empty strings.
* AADPasswordRuleSettings
* Fixed an issue where `BannedPasswordList` could be null.
* AADPIMGroupSetting
* Fixed an issue where typed variables could lead to an exception.
* AADUser
* Fixed an export issue where a user was deleted during a long-running job.
FIXES [#5703](https://github.com/microsoft/Microsoft365DSC/issues/5703)
* EXOIRMConfiguration
* Changed the parameters `LicensingLocation` and `RMSOnlineKeySharingLocation`
to `System.String` instead of an implicit conversion to `System.Uri`.
* EXOMigration
* Fixed an issue where `UserEmails` could contain empty strings.
* FabricAdmintenantsettings
* Refreshed the property list.
FIXES [#6866](https://github.com/microsoft/Microsoft365DSC/issues/6866)
* IntuneDeviceEnrollmentStatusPageWindows10
* Fixed an issue where `SelectedMobileAppNames` could contain empty strings
during the execution of `Test-TargetResoure`.
* O365OrgSettings
* Changed how errors are handled to fail instead of returning false drifts.
FIXES [#6787](https://github.com/microsoft/Microsoft365DSC/issues/6787)
* SCPolicyConfig
* Fixed an issue where the sub-property `JustificationText` could contain
empty strings.
* TeamsDialInConferencingTenantSettings
* Fixed an issue where the properties `MigrateServiceNumbersOnCrossForestMove`
and `UseUniqueConferenceIds` were not rendered correctly in the
Expand All @@ -21,6 +38,7 @@
an error if the module was installed in Windows PowerShell but the
update attempt was performed in PowerShell 7.
* DEPENDENCIES
* Removed dependency on `PSDesiredStateConfiguration`.
* Updated MSCloudLoginAssistant to version 1.1.58.

# 1.26.128.1
Expand Down Expand Up @@ -76,15 +94,21 @@
* M365DSCPermissions
* Changed the output of `Get-M365DSCCompiledPermissionList` to show the
required Read and Update permissions for `Roles` and `RoleGroups`.
* MISC
* Updated the structure of all EXO settings.json files that contain the
`Roles` and `RoleGroups` properties.
* M365DSCTelemetryEngine
* Added a function to test if telemetry is enabled.
* M365DSCUtil
* Added the output of the drift event to the screen in Verbose mode.
FIXES [#6666](https://github.com/microsoft/Microsoft365DSC/issues/6666)
* Added the parameter `-WithStatistics` to `Export-M365DSCConfiguration`.
* Fixed an issue where the module is not being updated if installed
with `Install-PSResource` because the filter condition was incorrect.
* MISC
* Added more performance improvements for hot code paths.
* Fixed issues with mismatched property types in resource tests.
* Refactored parts of the core engine with C#.
* Replaced `Get-(Pwsh)DscResource` with a custom implementation.
* Updated the structure of all EXO settings.json files that contain the
`Roles` and `RoleGroups` properties.
* DEPENDENCIES
* Fixed a case typo in `RequiredVersion` of a dependency.
FIXES [#6815](https://github.com/microsoft/Microsoft365DSC/issues/6815)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -610,12 +610,12 @@ function Set-TargetResource
$currentMembers = @()
foreach ($member in $backCurrentMembers)
{
$currentMembers += [pscustomobject]@{Type = $member.Type; Identity = $member.Identity }
$currentMembers += @{Type = $member.Type; Identity = $member.Identity }
}
$desiredMembers = @()
foreach ($member in $requestedMembers)
{
$desiredMembers += [pscustomobject]@{Type = $member.Type; Identity = $member.Identity }
$desiredMembers += @{Type = $member.Type; Identity = $member.Identity }
}
$membersDiff = Compare-Object -ReferenceObject $currentMembers -DifferenceObject $desiredMembers -Property Identity, Type
foreach ($diff in $membersDiff)
Expand Down Expand Up @@ -685,7 +685,7 @@ function Set-TargetResource
$compareCurrentScopedRoleMembersValue = @()
foreach ($roleMember in $currentScopedRoleMembersValue)
{
$compareCurrentScopedRoleMembersValue += [pscustomobject]@{
$compareCurrentScopedRoleMembersValue += @{
RoleName = $roleMember.RoleName
Identity = $roleMember.RoleMemberInfo.Identity
Type = $roleMember.RoleMemberInfo.Type
Expand All @@ -694,7 +694,7 @@ function Set-TargetResource
$compareDesiredScopedRoleMembersValue = @()
foreach ($roleMember in $desiredScopedRoleMembersValue)
{
$compareDesiredScopedRoleMembersValue += [pscustomobject]@{
$compareDesiredScopedRoleMembersValue += @{
RoleName = $roleMember.RoleName
Identity = $roleMember.RoleMemberInfo.Identity
Type = $roleMember.RoleMemberInfo.Type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1914,7 +1914,7 @@ function Export-TargetResource
function Get-M365DSCAzureADAppPermissions
{
[CmdletBinding()]
[OutputType([PSCustomObject])]
[OutputType([System.Collections.Hashtable[]])]
param
(
[Parameter(Mandatory = $true)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -695,13 +695,13 @@ function Get-TargetResource
DisplayName = $Policy.DisplayName
Id = $Policy.Id
State = $Policy.State
IncludeApplications = [System.String[]](@() + $Policy.Conditions.Applications.IncludeApplications)
IncludeApplications = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.Applications.IncludeApplications -ElementType ([System.String])
#no translation of Application GUIDs, return empty string array if undefined
ExcludeApplications = [System.String[]](@() + $Policy.Conditions.Applications.ExcludeApplications)
ExcludeApplications = [System.String[]]($Policy.Conditions.Applications.ExcludeApplications)
ApplicationsFilter = $Policy.Conditions.Applications.ApplicationFilter.Rule
ApplicationsFilterMode = $Policy.Conditions.Applications.ApplicationFilter.Mode
#no translation of GUIDs, return empty string array if undefined
IncludeUserActions = [System.String[]](@() + $Policy.Conditions.Applications.IncludeUserActions)
IncludeUserActions = [System.String[]]($Policy.Conditions.Applications.IncludeUserActions)
#no translation needed, return empty string array if undefined
IncludeUsers = $IncludeUsers
ExcludeUsers = $ExcludeUsers
Expand All @@ -711,20 +711,20 @@ function Get-TargetResource
ExcludeRoles = $ExcludeRoles
IncludeGuestOrExternalUserTypes = [System.String[]]$IncludeGuestOrExternalUserTypes
IncludeExternalTenantsMembershipKind = [System.String]$Policy.Conditions.Users.IncludeGuestsOrExternalUsers.ExternalTenants.MembershipKind
IncludeExternalTenantsMembers = [System.String[]](@() + $Policy.Conditions.Users.IncludeGuestsOrExternalUsers.ExternalTenants.AdditionalProperties.members)
IncludeExternalTenantsMembers = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.Users.IncludeGuestsOrExternalUsers.ExternalTenants.AdditionalProperties.members -ElementType ([System.String])

ExcludeGuestOrExternalUserTypes = [System.String[]]$ExcludeGuestOrExternalUserTypes
ExcludeExternalTenantsMembershipKind = [System.String]$Policy.Conditions.Users.ExcludeGuestsOrExternalUsers.ExternalTenants.MembershipKind
ExcludeExternalTenantsMembers = [System.String[]](@() + $Policy.Conditions.Users.ExcludeGuestsOrExternalUsers.ExternalTenants.AdditionalProperties.members)
ExcludeExternalTenantsMembers = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.Users.ExcludeGuestsOrExternalUsers.ExternalTenants.AdditionalProperties.members -ElementType ([System.String])

IncludeServicePrincipals = $Policy.Conditions.ClientApplications.IncludeServicePrincipals
ExcludeServicePrincipals = $Policy.Conditions.ClientApplications.ExcludeServicePrincipals
ServicePrincipalFilterMode = $Policy.Conditions.ClientApplications.ServicePrincipalFilter.Mode
ServicePrincipalFilterRule = $Policy.Conditions.ClientApplications.ServicePrincipalFilter.Rule

IncludePlatforms = [System.String[]](@() + $Policy.Conditions.Platforms.IncludePlatforms)
IncludePlatforms = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.Platforms.IncludePlatforms -ElementType ([System.String])
#no translation needed, return empty string array if undefined
ExcludePlatforms = [System.String[]](@() + $Policy.Conditions.Platforms.ExcludePlatforms)
ExcludePlatforms = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.Platforms.ExcludePlatforms -ElementType ([System.String])
#no translation needed, return empty string array if undefined
IncludeLocations = $IncludeLocations
ExcludeLocations = $ExcludeLocations
Expand All @@ -734,16 +734,16 @@ function Get-TargetResource
#no translation or conversion needed
DeviceFilterRule = [System.String]$Policy.Conditions.Devices.DeviceFilter.Rule
#no translation or conversion needed
UserRiskLevels = [System.String[]](@() + $Policy.Conditions.UserRiskLevels)
UserRiskLevels = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.UserRiskLevels -ElementType ([System.String])
#no translation needed, return empty string array if undefined
SignInRiskLevels = [System.String[]](@() + $Policy.Conditions.SignInRiskLevels)
SignInRiskLevels = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.SignInRiskLevels -ElementType ([System.String])
#no translation needed, return empty string array if undefined
ClientAppTypes = [System.String[]](@() + $Policy.Conditions.ClientAppTypes)
ClientAppTypes = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.ClientAppTypes -ElementType ([System.String])
#no translation needed, return empty string array if undefined
GrantControlOperator = $Policy.GrantControls.Operator
#no translation or conversion needed
BuiltInControls = [System.String[]](@() + $Policy.GrantControls.BuiltInControls)
CustomAuthenticationFactors = [System.String[]](@() + $Policy.GrantControls.CustomAuthenticationFactors)
BuiltInControls = Get-M365DSCArrayFromProperty -PropertyValue $Policy.GrantControls.BuiltInControls -ElementType ([System.String])
CustomAuthenticationFactors = Get-M365DSCArrayFromProperty -PropertyValue $Policy.GrantControls.CustomAuthenticationFactors -ElementType ([System.String])
#no translation needed, return empty string array if undefined
ApplicationEnforcedRestrictionsIsEnabled = $false -or $Policy.SessionControls.ApplicationEnforcedRestrictions.IsEnabled
#make false if undefined, true if true
Expand All @@ -770,7 +770,7 @@ function Get-TargetResource
TransferMethods = [System.String]$Policy.Conditions.AuthenticationFlows.TransferMethods
ProtocolFlows = $ProtocolFlowsValue
#no translation needed, return empty string array if undefined
ServicePrincipalRiskLevels = [System.String[]](@() + $Policy.Conditions.ServicePrincipalRiskLevels)
ServicePrincipalRiskLevels = Get-M365DSCArrayFromProperty -PropertyValue $Policy.Conditions.ServicePrincipalRiskLevels -ElementType ([System.String])
#Standard part
TermsOfUse = $termOfUseName
InsiderRiskLevels = $InsiderRiskLevelsValue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1355,7 +1355,7 @@ function Export-TargetResource
function Get-M365DSCAzureADGroupLicenses
{
[CmdletBinding()]
[OutputType([PSCustomObject])]
[OutputType([System.Collections.Hashtable[]])]
param(
[Parameter(Mandatory = $true)]
$AssignedLicenses
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,7 @@ function Export-TargetResource
function Get-M365DSCRoleManagementPolicyRuleObject
{
[CmdletBinding()]
[OutputType([PSCustomObject])]
[OutputType([System.Collections.Hashtable[]])]
param(
[Parameter()]
$Rule
Expand Down
Loading
Loading