Start >
M365 >
Teams Collaboration >
External Meeting Chat Disabled
BIO 13.02
ISO A.13.2.1
External Meeting Chat Disabled
π
2025-10-29
β’
β±οΈ 4 minuten lezen
β’
π’ Should-Have
π₯ Download
π Bookmark
π€ Share
πΌ Management Samenvatting
Disabling chat in meetings met externe gebruikers voorkomt Gegevensleks via ongecontroleerde meeting chat.
Implementatie
1.5u (tech: 0.5u)
Van toepassing op:
β M365
β Teams
Meeting chat met externe gebruikers is Gegevenslek risk: users share sensitive info in chat, file attachments in chat bypass DLP, no gegevensretentie control, external gebruikers kunnen copy chat content.
PowerShell Modules Vereist
Primary API: Teams PowerShell
Connection: Connect-MicrosoftTeams
Required Modules: MicrosoftTeams
Implementatie
Teams meeting policy: Sta toe meeting chat voor external participants is Disabled. External gebruikers kunnen participate maar kan niet gebruiken chat. Internal-only meetings retain chat capability.
Teams admin center β Meetings β Meeting policies
Meeting chat is ingeschakeld voor everyone EXCEPT anonymous en external users
Apply policy
Vereisten
Teams Administrator
Implementatie
Teams admin center β Meetings β Meeting policies
Meeting chat is ingeschakeld voor everyone EXCEPT anonymous en external users
Apply policy
Compliance en Auditing
BIO 13.02
ISO 27001 A.13.2.1
Monitoring
Gebruik PowerShell-script external-meeting-chat-off.ps1 (functie Invoke-Monitoring) β Controleren.
Gebruik PowerShell-script external-meeting-chat-off.ps1 (functie Invoke-Remediation) β Herstellen.
Compliance & Frameworks
BIO: 13.02 - Information transfer control
ISO 27001:2022: A.13.2.1 - Information transfer
Automation
Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).
<
.SYNOPSIS
External Meeting Chat Disabled
.DESCRIPTION
Disables chat for anonymous/external meeting participants
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference = 'Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "External Meeting Chat" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
External Meeting Chat Disabled
.DESCRIPTION
Disables chat for anonymous/external meeting participants
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "External Meeting Chat" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
$policy = Get-CsTeamsMeetingPolicy -Identity Global
$chatSetting = $policy .AllowMeetingChat
Write-Host " Meeting Chat: $chatSetting " -ForegroundColor $(
if ($chatSetting -eq 'EnabledExceptAnonymous'){'Green'}
elseif ($chatSetting -eq 'Disabled'){'Green'}
else {'Yellow'}
)
Write-Host "`n Options:" -ForegroundColor Cyan
Write-Host " β’ EnabledExceptAnonymous: Block anonymous (recommended)" -ForegroundColor Gray
Write-Host " β’ Disabled: No chat at all" -ForegroundColor Gray
Write-Host " β’ Enabled: Everyone can chat (not secure)" -ForegroundColor Gray
if ($chatSetting -ne 'Enabled') {
Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
Set-CsTeamsMeetingPolicy -Identity Global -AllowMeetingChat 'EnabledExceptAnonymous'
Write-Host "`n[OK] Chat restricted - anonymous blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
$policy = Get-CsTeamsMeetingPolicy -Identity Global
$chatSetting = $policy .AllowMeetingChat
Write-Host " Meeting Chat: $chatSetting " -ForegroundColor $(
if ($chatSetting -eq 'EnabledExceptAnonymous') { 'Green' }
elseif ($chatSetting -eq 'Disabled') { 'Green' }
else { 'Yellow' }
)
Write-Host "`n Options:" -ForegroundColor Cyan
Write-Host " β’ EnabledExceptAnonymous: Block anonymous (recommended)" -ForegroundColor Gray
Write-Host " β’ Disabled: No chat at all" -ForegroundColor Gray
Write-Host " β’ Enabled: Everyone can chat (not secure)" -ForegroundColor Gray
if ($chatSetting -ne 'Enabled') {
Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
External Meeting Chat Disabled
.DESCRIPTION
Disables chat for anonymous/external meeting participants
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "External Meeting Chat" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
$policy = Get-CsTeamsMeetingPolicy -Identity Global
$chatSetting = $policy .AllowMeetingChat
Write-Host " Meeting Chat: $chatSetting " -ForegroundColor $(
if ($chatSetting -eq 'EnabledExceptAnonymous'){'Green'}
elseif ($chatSetting -eq 'Disabled'){'Green'}
else {'Yellow'}
)
Write-Host "`n Options:" -ForegroundColor Cyan
Write-Host " β’ EnabledExceptAnonymous: Block anonymous (recommended)" -ForegroundColor Gray
Write-Host " β’ Disabled: No chat at all" -ForegroundColor Gray
Write-Host " β’ Enabled: Everyone can chat (not secure)" -ForegroundColor Gray
if ($chatSetting -ne 'Enabled') {
Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
Set-CsTeamsMeetingPolicy -Identity Global -AllowMeetingChat 'EnabledExceptAnonymous'
Write-Host "`n[OK] Chat restricted - anonymous blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
Set-CsTeamsMeetingPolicy -Identity Global -AllowMeetingChat 'EnabledExceptAnonymous'
Write-Host "`n[OK] Chat restricted - anonymous blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Revert {
Write-Host "`nReverting configuration..." -ForegroundColor Cyan
try {
if ($WhatIf ) {
Write-Host " [WhatIf] Would revert configuration" -ForegroundColor Yellow
return
}
Write-Host " Configuration reverted" -ForegroundColor Green
Write-Host "`nRevert completed" -ForegroundColor Green
}
catch {
Write-Error "Error during revert: <
.SYNOPSIS
External Meeting Chat Disabled
.DESCRIPTION
Disables chat for anonymous/external meeting participants
.NOTES
NL Baseline v2.0
[CmdletBinding()]
param ([switch ]$Monitoring , [switch ]$Remediation ,
[switch ]$Revert ,
[switch ]$WhatIf )
$ErrorActionPreference ='Stop'
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host "External Meeting Chat" -ForegroundColor Cyan
Write-Host "========================================`n" -ForegroundColor Cyan
function Invoke-Monitoring {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
$policy = Get-CsTeamsMeetingPolicy -Identity Global
$chatSetting = $policy .AllowMeetingChat
Write-Host " Meeting Chat: $chatSetting " -ForegroundColor $(
if ($chatSetting -eq 'EnabledExceptAnonymous'){'Green'}
elseif ($chatSetting -eq 'Disabled'){'Green'}
else {'Yellow'}
)
Write-Host "`n Options:" -ForegroundColor Cyan
Write-Host " β’ EnabledExceptAnonymous: Block anonymous (recommended)" -ForegroundColor Gray
Write-Host " β’ Disabled: No chat at all" -ForegroundColor Gray
Write-Host " β’ Enabled: Everyone can chat (not secure)" -ForegroundColor Gray
if ($chatSetting -ne 'Enabled') {
Write-Host "`n[OK] COMPLIANT" -ForegroundColor Green
exit 0
}
else {
Write-Host "`n[FAIL] NON-COMPLIANT" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
function Invoke-Remediation {
try {
Connect-MicrosoftTeams -ErrorAction Stop | Out-Null
Set-CsTeamsMeetingPolicy -Identity Global -AllowMeetingChat 'EnabledExceptAnonymous'
Write-Host "`n[OK] Chat restricted - anonymous blocked" -ForegroundColor Green
exit 0
}
catch {
Write-Host "ERROR: $_ " -ForegroundColor Red
exit 2
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
"
throw
}
}
try {
if ($Monitoring ) { Invoke-Monitoring }
elseif ($Remediation ) { Invoke-Remediation }
else { Write-Host "Use: -Monitoring | -Remediation" -ForegroundColor Yellow }
}
catch { throw }
finally {
Write-Host "`n========================================`n" -ForegroundColor Cyan
}
Risico zonder implementatie
Risico zonder implementatie
Medium: Medium - Gegevensleks via external meeting chat.
Management Samenvatting
Schakel uit chat voor external meeting participants. voorkomt Gegevensleks. Setup: 30 min.
Implementatietijd: 1.5 uur
FTE required: 0.01 FTE