Public Folder Notifications Tweak

I showed you how to use Get-PublicFolderItemStatistics Here is a little Public Folder Notifications Tweak that makes it “set it and forget it”. It requires no intervention after it is set. If you are in charge with doing something like maintaining a separate set of contacts for your organization based on a master list of Public folder contacts. You have to constantly check the public folder for changes…
I guess you could ask the department that maintains the public folder to let you know when there have been changes made or you can set up an automated way using PowerShell and Tasks Scheduler.
Prerequisites On Public Folder Notifications Tweak
Please look at my last post on Prerequisistes.
Create a PowerShell Script To Check On the Public Folder
What this script does is allows you to Use Get-PublicFolderItemStatistics for Notifications that are sent by email to the email of your choosing. It looks for any changes that you set in the variable $baseline. If there is a change, the command Get-PublicFolderItemStatistics is piped into an html body that is formatted correctly for sending mail through the MS Graph API.
The contact listing in the public folder is sorted by modification date so you can tell which record was changed.
The Tweak
The Public Folder Notifications Tweak is the Get-PublicFolderItemStatistics command takes the first record’s modification date and compares it to a date that is written to a text file. If it is new than the date in the text file, it sends the report over email. You can look at the report and see the changes by modification date. It then takes the new date and replaces it in the text file for subsequent runs. If the date is not newer it does nothing.
##Declare Parameters##
$clientID = "Your_Client_ID"
$clientSecret = "Your_Client_Secret"
$tenantID = "Your_Tenant_ID"
##Run Script##
Connect-ExchangeOnline
$baseline = Get-Content -Path "<Path To>\baseline.txt"
$m = Get-PublicFolderItemStatistics -Identity "\Path\To\Public\Folder\Contacts" | Select Subject,LastModificationTime | Sort-Object -Property LastModificationTime -Descending
if ($m -ge $baseline) {
$k = Get-PublicFolderItemStatistics -Identity "\Path\To\Public\Folder\Contacts" | Select Subject,LastModificationTime | Sort-Object -Property LastModificationTime -Descending
#Connect to GRAPH API
$MailSender = "sender_email"
#Connect to GRAPH API
$tokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $clientId
Client_Secret = $clientSecret
}
$tokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantID/oauth2/v2.0/token" -Method POST -Body $tokenBody
$headers = @{
"Authorization" = "Bearer $($tokenResponse.access_token)"
"Content-type" = "application/json"
}
$h = $k | ConvertTo-Html | select -Skip 4
$HTMLBody = @"
$h
"@
$msg = $HTMLBody
#Send Mail
$URLsend = "https://graph.microsoft.com/v1.0/users/$MailSender/sendMail"
$BodyJsonsend = @"
{
"message": {
"subject": "Change in Public Folder Contacts.",
"body": {
"contentType": "HTML",
"content": "$msg"
},
"toRecipients": [
{
"emailAddress": {
"address": "email_you_specify" }
}
]
},
"saveToSentItems": "false"
}
"@
Invoke-RestMethod -Method POST -Uri $URLsend -Headers $headers -Body $BodyJsonsend
$T = Get-Date
Set-Content -Path "<Path To>\baseline.txt" -Value $T
}else{
Write-Host No Change!
Public Folder Notifications Tweak for Notifications Scheduled Task
Please look at my last post on how to create the scheduled task.
What a great Public Folder Notifications Tweak! Now that you have the scheduled task set up, when there is a change in the public folder, you will be notified via email, and you can make the necessary changes on your end. Beats having to remember!
Managing Teams Apps

Managing Teams Apps
Microsoft Teams lack of integration with M365 doesn’t stop at the client. It extends to Administration too. Let me explain the ways in Managing Teams Apps.
You can add to the functionality of Microsoft Teams by Managing Teams Apps and add them to users. It is a good system. The responsibility is on the user to request access to this app which then can add to their teams by themselves once you approve them.
Where to Configure Managing Teams Apps
I have found three places to do this. You would think Microsoft would make it easy Managing Teams Apps but that wouldn’t be Microsoft. I will start with the main place and then describe the other two.
Microsoft Teams Admin
Them place is Microsoft teams admin. Go to https://admin.teams.microsoft.com to get to the team’s admin ports and click the Manage Apps section. From there, go to the top right of the screen under actions, and choose org wide app settings. This is where go can set your base config on how you want your Managing Teams Apps to behave. Like allow, MS Apps, Custom Apps or Third-Party Apps. Allowing apps for external access.
The best setting that I have turned off is letting users install app on their own. As an Admin, you need to vet out the application. By, default, most apps are blocked (with the exception of MS Apps). You must request access.
Teams Admin App
There are some apps that you can allow but unless they are turned on from this app, they will not work, For example, Dropbox. So, request and allow the Microsoft Teams admin app for yourself (As a Teams Admin) and add it to your teams. Open the app an allow any file sharing (that’s not OneDrive or Share point) into you organization:

Microsoft hides this. You really must look for it. They want you to use OneDrive or SharePoint. Requests that were made before you toggled this setting might have to be made again.
Microsoft 365 Admin Center
If you go to https://admin.microsoft.com and then fins settings along the left pane, you will see settings. Click that and then go to integrated apps. You will see a lot of apps that can be used with teams and Outlook or both. There is a disclaimer on the page that states it is better to use Teams Admin for Managing Teams App. It more than likely overrides anything you configure here. For admins like us, it makes our job a little more confusing.
Introducing The Success Before The Internet Podcast (SBTI)
Please click the title above to listen to the trailer. For all episodes, stream with your favorite podcast app of go to successbeforetheinternet.com! I know you will enjoy it 🙂
Voicemails Disappear from Teams History

How convenient is it to have your voicemails accessible from Microsoft Teams! But what if they Disappear from Teams History? I thought it was something simple. I was wrong. Here is a situation I came across:
Example of Voicemails Disappear from Teams History
A user receives a call from an internal number (person in the organization), they receive an email with voicemail. It shows in their Teams Activity that the caller left a voicemail, and the voicemail is also shown in their Teams call history. However, when a user receives a call from an external user (person outside the organization), they receive an email with the voicemail. It shows in their Teams Activity that the caller left a voicemail, BUT the voicemail is not shown in their Teams call history.
I guess some users do not get very much voicemail or the transcription they get in their Exchange mailboxes is not enough. If your user like getting voicemails through teams and they start disappearing, you will find out soon enough!! In my case it was only external voicemails, but it might be both internal and external. It all depends on where the underlying issue is.
Researching on Google didn’t turn up much information. I only found one article and it didn’t say much. The only hint I gleaned from it was maybe an exchange rule might be causing the issue. That put me on the right track….
How it was resolved
Looking at a few users I could roughly figure out when notices of external voicemail stopped showing up in their Teams. It was right about the time we employed a third-party service that scanned our emails for spam, phishing, and malware. It broke our voicemail behavior. It caused voicemails to Disappear from Teams History.
The tool is a combination of mail rules and connectors in Exchange that effectively send incoming emails out to be checked and if they are clean, it sends them back. Specifically, an Exchange rule. It must be tweaked to allow emails that contained external voicemails as an exception. By doing that the link in teams was restored and Voicemail started behaving normally again! See the screenshot below for an example.

The Moral of the Story
M365 is an integrated ecosystem. If you deploy third-party tools, be prepared for things to break. I would like to tell you Microsoft will help, but they won’t. You will be left to your own devices or helpful bloggers :p
Teams Voicemail Disappears

I have had users lately complain that their voicemails in Teams history are gone. Basically, Teams Voicemail Disappears. It is frustrating to say the least. You had a voicemail that you have been keeping for a while and then one day you go to it and it is gone. Disappeared into the ether and you have no idea where it went.
How Teams Voicemail Disappears Happens
Remember how I told you in a previous post that teams wasn’t integrated very well with the rest of the M365 ecosystem. Well, it is a little bit and in the most frustrating way. Let me explain.
With Teams cloud Voicemail Policies you can set up transcriptions of the voicemail sent to your Exchange mailbox as an email notification. Great. What they don’t tell you is if you delete that notification, the related voicemail disappears from your team call history. If your admin has disabled the policy, it won’t be an issue. The only way to delete a voicemail is if you manually delete it from your MS Teams history.
You may want to delete the notifications to clear out clutter from your inbox. I have several users who did just that. They lost all their VM’s. Well sort of……
How To Restore the Lost Voicemails
Do a search on your inbox for “Voice Mail” and you will find all voicemail transcriptions / Notifications. Move them back to your inbox. When you refresh your call history the voicemails will be back.
Dealing With Voicemails Going Forward
What I instructed my users to do was to create a folder in their inbox called “Voicemails”. Whenever they get a notification, just move it to that folder. It does two things; one it reduces clutter in their inbox (Which they anyway) but more importantly the voicemail history is preserved in teams. Currently, there is no Teams policy that will prevent this calamity from happening LOL.
Just remember if you delete the VM from Teams first, the notification will remain in Outlook. Armed with this knowledge, just delete the notification when you are ready, it will save you a click.