Table of Contents
Updated Clients and Sharing with External Users in Meetings Coming
As you probably know, as part of a major revamp for the application, Whiteboard is moving its storage for its boards from Azure to OneDrive for Business. According to Microsoft 365 roadmap item 66767, general availability happened in December 2021. This refers to tenants who decided to opt-in early, or for tenants who decide to switch through the Whiteboard settings in the Microsoft 365 admin center.
OneDrive became the default for storage of new boards in January 2022. According to Message center notification MC275235, the updates for Whiteboard clients that can’t yet support OneDrive should be available by the end of March. Once the updated clients are deployed, the transition should complete.
Sharing Whiteboard with External Users
Further good news comes in Microsoft 365 roadmap item 66759, which says that external participants in Teams meetings will be able to share boards. A dependency exists on OneDrive for Business as the new feature only works when the board being shared is in OneDrive. If not, Teams displays the polite but extremely frustrating error message shown in Figure 1. People just love being locked out of collaboration, so it’s good that Microsoft is fixing this problem.

The Sad State of Whiteboard PowerShell
You might not know that Whiteboard supports PowerShell. Well, it does, but only just. A bare-bones module (WhiteboardAdmin) is available in the PowerShell gallery, but it doesn’t contain many cmdlets.
Get-Command -Module WhiteboardAdmin CommandType Name Version Source ----------- ---- ------- ------ Function Get-Whiteboard 1.5.0 WhiteboardAdmin Function Get-WhiteboardOwners 1.5.0 WhiteboardAdmin Function Get-WhiteboardSettings 1.5.0 WhiteboardAdmin Function Get-WhiteboardsForTenant 1.5.0 WhiteboardAdmin Function Invoke-TransferAllWhiteboards 1.5.0 WhiteboardAdmin Function Remove-Whiteboard 1.5.0 WhiteboardAdmin Function Set-WhiteboardOwner 1.5.0 WhiteboardAdmin Function Set-WhiteboardSettings 1.5.0 WhiteboardAdmin
Not many people have downloaded the module either, possibly because they don’t know of its existence. I’ve used the Invoke-TransferAllWhiteboards cmdlet in the past to transfer ownership of boards from one user account to another (a task sometimes necessary if someone leaves the organization), but I have not played with the other cmdlets.
Reporting Whiteboards with PowerShell
That is, until I noticed a tweet about a new script available in the PnP Script Samples gallery to create a report about all the boards and their owners in a tenant. The script uses the old Microsoft Online Services (MSOL) module to retrieve user information. Microsoft plans to deprecate the MSOL module at the end of 2022, so it’s a good example of a script that needs to be updated to use either Microsoft Graph queries or cmdlets from the Microsoft Graph PowerShell SDK.
Upgrading the script didn’t take much time because the only calls are to load the module and retrieve details of user accounts. My version of the code is shown below. Apart from using the Microsoft Graph PowerShell SDK, the only changes I made replaced output arrays with PowerShell lists to improve performance.
ReportWhiteBoardInfo.PS1 # Import the WhiteboardAdmin module Import-Module WhiteboardAdmin # Connect to the Microsoft Graph Connect-MgGraph -TenantId $TenantId -Scope "Directory.Read.All, User.Read.All" try { $dateTime = (Get-Date).toString("dd-MM-yyyy") $fileName = "WhiteboardReport-" + $dateTime + ".csv" $outputView = "c:\temp\" + $fileName # The geography to look for board owners in. Accepted values are: Europe, Australia, or Worldwide (all boards not in australia or europe). $supportedGeographies = @("Europe", "Australia", "Worldwide") # Array to hold Whiteboard owners $WhiteboardOwners = [System.Collections.Generic.List[Object]]::new(); $i=0 foreach ($geography in $supportedGeographies) { Write-Host "Getting Whiteboard owners for geography: $($geography)..." $GeographyOwners = Get-WhiteboardOwners -Geography $Geography foreach ($UserId in $GeographyOwners.items) { $User = Get-MgUser -UserId $UserId $i++ $ReportLine = [PSCustomObject][Ordered]@{ DisplayName = $User.DisplayName UPN = $User.UserPrincipalName Geography = $Geography UserId = $UserId } $WhiteboardOwners.Add($ReportLine) } # End ForEach Owner Write-Host "Total whiteboard owners found so far $($i)" } # EndForEach Geography # Array to hold Whiteboard details $Whiteboards = [System.Collections.Generic.List[Object]]::new() # Get whiteboards from the Microsoft Whiteboard service by owners foreach ($Owner in $WhiteboardOwners) { Write-Host "Getting Whiteboards for owner: $($Owner.UPN) ..." $whiteboardInfo = Get-Whiteboard -UserId $Owner.UserID foreach ($whiteboardInstance in $whiteboardInfo) { $ReportLine = [PSCustomObject][Ordered]@{ User = $Owner.DisplayName UPN = $Owner.UPN WhiteboardId = $whiteboardInstance.Id Title = $whiteboardInstance.Title IsShared = $whiteboardInstance.IsShared Created = Get-Date($whiteboardInstance.CreatedTime) -format g Modified = Get-Date($whiteboardInstance.LastModifiedTime) -format g Geography = $Owner.Geography UserId = $Owner.UserId } $Whiteboards.Add($ReportLine) } #End Foreach Whiteboards Write-Host "Found $($whiteboards.Count) Whiteboards owned by: $($Owner.UPN)" } # End Foreach Whiteboard owners Write-Host "Found $($whiteboards.Count) Whiteboards in the tenant." # Export the results to a CSV file and Out-GridView $Whiteboards | Export-CSV -Path $outputView -Force -NoTypeInformation $Whiteboards | Out-GridView Write-Host "Finished" } catch { Write-Host -f Red "Error:" $_.Exception.Message }
You can download the script from GitHub. I’ll update the code there when I see a fix for the problem I’m just about to describe.
No Trace of Boards Stored in OneDrive
All worked well and the script generated a report (Figure 2 shows some of the report data viewed through the Out-GridView cmdlet).

The problem is that the report doesn’t include any whiteboard stored in OneDrive for Business. Microsoft released Version 1.5 of the WhiteboardAdmin module a month ago, but it’s obvious that the cmdlets only work against the Azure storage and ignore the transition to OneDrive.
Microsoft’s documentation doesn’t cover migration of old boards from Azure to OneDrive. However, Microsoft 365 roadmap item 66763 covers migration of previously created boards with general availability in April 2022. The text says: “Tenants in locations that are currently storing new whiteboards in European datacenters will have previously created whiteboards migrated to European datacenters.”
This masterpiece of obfuscation implies that Microsoft plans to migrate old boards currently stored in U.S. datacenters to European datacenters, where hopefully the data will end up in OneDrive for Business. Perhaps this is a pointer to a more widespread migration. Let’s hope that this happens, and that Microsoft upgrades the WhiteboardAdmin module to deal with OneDrive.
Learn more about how the Office 365 applications really work on an ongoing basis by subscribing to the Office 365 for IT Pros eBook. Our monthly updates keep subscribers informed about what’s important across the Office 365 ecosystem.
Hi Tony!
Do you know if is possible sharing a link to Whiteboard to external users?
Do you know if it is possible to share a link to a whiteboard with an external user like I do with any Word/Excel file? I tried many ways but it doesn’t work. Thanks!
Have you tried sharing the link to the file stored in OneDrive?
The Get-whiteboard cmdlet gets caught in an authentication loop every few interations when used in the foreach loop to get all whiteboards owner by each whiteboard owner. This is occurring for every 3rd owner (after the initial start where it occurs after approximately the first 10) and takes approximately 4:30 for the authentication loop to authenticate and continue.
I’ve tried by module versions 1.11.0 (the latest) and 1.9.0 and it does this for both.
Have you seen this in your usage?
I’m using this with an MFA enabled account.
I know this is a couple years old, but have you found any methods for enumerating whiteboards (counts, activity) from OneDrive?
Not activity. I don’t see any audit events that help here.
As to reporting the whiteboard files, seeing that they are now in OneDrive, you can use the SharePoint Graph APIs to report the files.