Skip to content

Commit 6122630

Browse files
Merge pull request KelvinTegelaar#1709 from kris6673/AutoAdmittedUsers
Fix: Refactor Teams global meeting policy to include AutoAdmittedUsers setting
2 parents d13dfa9 + b1c2f8a commit 6122630

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardTeamsGlobalMeetingPolicy.ps1

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,18 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy {
2121
"CIS M365 5.0 (8.5.6)"
2222
EXECUTIVETEXT
2323
Establishes security-focused default settings for Teams meetings, controlling who can join meetings, present content, and participate in chats. These policies balance collaboration needs with security requirements, ensuring meetings remain productive while protecting against unauthorized access and disruption.
24-
ADDEDCOMPONENT
25-
{"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"EveryoneUserOverride","value":"EveryoneUserOverride"},{"label":"EveryoneInCompanyUserOverride","value":"EveryoneInCompanyUserOverride"},{"label":"EveryoneInSameAndFederatedCompanyUserOverride","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"OrganizerOnlyUserOverride","value":"OrganizerOnlyUserOverride"}]}
26-
{"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"}
27-
{"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType","label":"Meeting chat policy","options":[{"label":"On for everyone","value":"Enabled"},{"label":"On for everyone but anonymous users","value":"EnabledExceptAnonymous"},{"label":"Off for everyone","value":"Disabled"}]}
28-
{"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl","label":"External participants can give or request control"}
24+
ADDEDCOMPONENT
25+
{"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode","label":"Default value of the `Who can present?`","options":[{"label":"EveryoneUserOverride","value":"EveryoneUserOverride"},{"label":"EveryoneInCompanyUserOverride","value":"EveryoneInCompanyUserOverride"},{"label":"EveryoneInSameAndFederatedCompanyUserOverride","value":"EveryoneInSameAndFederatedCompanyUserOverride"},{"label":"OrganizerOnlyUserOverride","value":"OrganizerOnlyUserOverride"}]}
26+
{"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting","label":"Allow anonymous users to join meeting"}
27+
{"type":"autoComplete","required":false,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.AutoAdmittedUsers","label":"Who can bypass the lobby?","helperText":"If left blank, People in my org remains enforced.","options":[{"label":"Everyone","value":"Everyone"},{"label":"People in my org","value":"EveryoneInCompanyExcludingGuests"},{"label":"People in or federated orgs","value":"EveryoneInSameAndFederatedCompany"},{"label":"People invited","value":"InvitedUsers"},{"label":"Only me","value":"OrganizerOnly"}]}
28+
{"type":"autoComplete","required":true,"multiple":false,"creatable":false,"name":"standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType","label":"Meeting chat policy","options":[{"label":"On for everyone","value":"Enabled"},{"label":"On for everyone but anonymous users","value":"EnabledExceptAnonymous"},{"label":"Off for everyone","value":"Disabled"}]}
29+
{"type":"switch","name":"standards.TeamsGlobalMeetingPolicy.AllowExternalParticipantGiveRequestControl","label":"External participants can give or request control"}
2930
IMPACT
3031
Low Impact
3132
ADDEDDATE
3233
2024-11-12
33-
POWERSHELLEQUIVALENT
34-
Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting \$false -AllowAnonymousUsersToStartMeeting \$false -AutoAdmittedUsers EveryoneInCompanyExcludingGuests -AllowPSTNUsersToBypassLobby \$false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode \$DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl \$false
34+
POWERSHELLEQUIVALENT
35+
Set-CsTeamsMeetingPolicy -AllowAnonymousUsersToJoinMeeting $false -AllowAnonymousUsersToStartMeeting $false -AutoAdmittedUsers $AutoAdmittedUsers -AllowPSTNUsersToBypassLobby $false -MeetingChatEnabledType EnabledExceptAnonymous -DesignatedPresenterRoleMode $DesignatedPresenterRoleMode -AllowExternalParticipantGiveRequestControl $false
3536
RECOMMENDEDBY
3637
"CIS"
3738
UPDATECOMMENTBLOCK
@@ -42,7 +43,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy {
4243
##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'TeamsGlobalMeetingPolicy'
4344

4445
param($Tenant, $Settings)
45-
$TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1','Teams_Room_Standard')
46+
$TestResult = Test-CIPPStandardLicense -StandardName 'TeamsGlobalMeetingPolicy' -TenantFilter $Tenant -RequiredCapabilities @('MCOSTANDARD', 'MCOEV', 'MCOIMP', 'TEAMS1', 'Teams_Room_Standard')
4647

4748
if ($TestResult -eq $false) {
4849
Write-Host "We're exiting as the correct license is not present for this standard."
@@ -51,20 +52,20 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy {
5152

5253
try {
5354
$CurrentState = New-TeamsRequest -TenantFilter $Tenant -Cmdlet 'Get-CsTeamsMeetingPolicy' -CmdParams @{Identity = 'Global' } |
54-
Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl
55-
}
56-
catch {
55+
Select-Object AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl
56+
} catch {
5757
$ErrorMessage = Get-NormalizedError -Message $_.Exception.Message
5858
Write-LogMessage -API 'Standards' -Tenant $Tenant -Message "Could not get the TeamsGlobalMeetingPolicy state for $Tenant. Error: $ErrorMessage" -Sev Error
5959
return
6060
}
6161

6262
$MeetingChatEnabledType = $Settings.MeetingChatEnabledType.value ?? $Settings.MeetingChatEnabledType
6363
$DesignatedPresenterRoleMode = $Settings.DesignatedPresenterRoleMode.value ?? $Settings.DesignatedPresenterRoleMode
64+
$AutoAdmittedUsers = $Settings.AutoAdmittedUsers.value ?? $Settings.AutoAdmittedUsers ?? $CurrentState.AutoAdmittedUsers # Default to current state if not set, for backward compatibility pre v8.6.0
6465

6566
$StateIsCorrect = ($CurrentState.AllowAnonymousUsersToJoinMeeting -eq $Settings.AllowAnonymousUsersToJoinMeeting) -and
6667
($CurrentState.AllowAnonymousUsersToStartMeeting -eq $false) -and
67-
($CurrentState.AutoAdmittedUsers -eq 'EveryoneInCompanyExcludingGuests') -and
68+
($CurrentState.AutoAdmittedUsers -eq $AutoAdmittedUsers) -and
6869
($CurrentState.AllowPSTNUsersToBypassLobby -eq $false) -and
6970
($CurrentState.MeetingChatEnabledType -eq $MeetingChatEnabledType) -and
7071
($CurrentState.DesignatedPresenterRoleMode -eq $DesignatedPresenterRoleMode) -and
@@ -79,7 +80,7 @@ function Invoke-CIPPStandardTeamsGlobalMeetingPolicy {
7980
Identity = 'Global'
8081
AllowAnonymousUsersToJoinMeeting = $Settings.AllowAnonymousUsersToJoinMeeting
8182
AllowAnonymousUsersToStartMeeting = $false
82-
AutoAdmittedUsers = 'EveryoneInCompanyExcludingGuests'
83+
AutoAdmittedUsers = $AutoAdmittedUsers
8384
AllowPSTNUsersToBypassLobby = $false
8485
MeetingChatEnabledType = $MeetingChatEnabledType
8586
DesignatedPresenterRoleMode = $DesignatedPresenterRoleMode

0 commit comments

Comments
 (0)