====== Minimal Message Tracking Admin Role ====== # PS Module Connect-ExchangeOnline # Variables $RoleGroup = "Custom Message Tracking Admin Group" $RoleName = "Minimal Message Tracking Admin Role" $Administrators = "fk@fikas.eu","jk@fikas.eu" # Custom Role Creation New-ManagementRole -Name $RoleName -Description "Allows using Get-MessageTrace and Get-MessageTraceDetail cmdltes only" -Parent "View-Only Recipients" $RoleEntries = (Get-ManagementRole $RoleName).RoleEntries $UnneededCmdlets = @() foreach($RoleEntry in $RoleEntries){$UnneededCmdlets += $($RoleEntry.split(" "))|where-object{$_ -like "*-*" -and $_ -notlike "-*"}} $UnneededCmdlets = $UnneededCmdlets|where-object{$_ -notlike "Get-MessageTraceDetail" -and $_ -notlike "Get-MessageTrace"} foreach($UnneededCmdlet in $UnneededCmdlets){Remove-ManagementRoleEntry "$RoleName\$UnneededCmdlet" -Confirm:$false} New-RoleGroup -Name $RoleGroup -Roles $RoleName # Role Assignment Update-RoleGroupMember -Identity $RoleGroup -Members $Administrators -Confirm:$false