Get-UsersTeamsFolders.ps1
19 Sep 2025Description
Purpose
Gets the Teams folders for all users on the local machine.
Detailed Description
This function retrieves the Teams folders for all users on the local machine. It returns an array of objects that contains the user name, Teams folder path, Teams upload folder path, new Teams folder path, and new Teams upload folder path.
Usage
Example 1
PS C:\> Get-UsersTeamsFolders
User : User1 TeamsFolder : C:\Users\User1\AppData\Roaming\Microsoft\Teams\Backgrounds\ TeamsUploadFolder : C:\Users\User1\AppData\Roaming\Microsoft\Teams\Backgrounds\Uploads\ NewTeamsFolder : C:\Users\User1\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\ NewTeamsUploadFolder : C:\Users\User1\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads\ User : User2 TeamsFolder : C:\Users\User2\AppData\Roaming\Microsoft\Teams\Backgrounds\ TeamsUploadFolder : C:\Users\User2\AppData\Roaming\Microsoft\Teams\Backgrounds\Uploads\ NewTeamsFolder : C:\Users\User2\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\ NewTeamsUploadFolder : C:\Users\User2\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads\
Notes
Author: Your Name Date: Today’s date
Script
function Get-UsersTeamsFolders {
<#
.SYNOPSIS
Gets the Teams folders for all users on the local machine.
.DESCRIPTION
This function retrieves the Teams folders for all users on the local machine. It returns an array of objects that contains the user name, Teams folder path, Teams upload folder path, new Teams folder path, and new Teams upload folder path.
.EXAMPLE
PS C:\> Get-UsersTeamsFolders
User : User1
TeamsFolder : C:\Users\User1\AppData\Roaming\Microsoft\Teams\Backgrounds\
TeamsUploadFolder : C:\Users\User1\AppData\Roaming\Microsoft\Teams\Backgrounds\Uploads\
NewTeamsFolder : C:\Users\User1\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\
NewTeamsUploadFolder : C:\Users\User1\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads\
User : User2
TeamsFolder : C:\Users\User2\AppData\Roaming\Microsoft\Teams\Backgrounds\
TeamsUploadFolder : C:\Users\User2\AppData\Roaming\Microsoft\Teams\Backgrounds\Uploads\
NewTeamsFolder : C:\Users\User2\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\
NewTeamsUploadFolder : C:\Users\User2\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads\
.INPUTS
None
.OUTPUTS
Array of objects that contains the user name, Teams folder path, Teams upload folder path, new Teams folder path, and new Teams upload folder path.
.NOTES
Author: Your Name
Date: Today's date
#>
$SystemAccounts = @("Administrator", "Default", "Public", "All Users", "Default User", "LocalService", "NetworkService", "rdgservice", "ADAxes_SVC", ".admin")
$Users = Get-ChildItem 'C:\Users\' | Where-Object { ( $_.PSIsContainer -and $SystemAccounts -notcontains $_.Name ) }
# remove users that are in the format *.admin
$Users = $Users | Where-Object { $_.Name -notmatch '\.admin$' }
$UsersTeamsFolders = @()
foreach ($User in $Users) {
$TeamsFolder = $User.FullName + "\AppData\Roaming\Microsoft\Teams\Backgrounds\"
$TeamsUploadFolder = $TeamsFolder + "Uploads\"
$NewTeamsFolder = $User.FullName + "\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\"
$NewTeamsUploadFolder = $NewTeamsFolder + "Uploads\"
$UsersTeamsFolders += [pscustomobject]@{
User = $User.Name
TeamsFolder = $TeamsFolder
TeamsUploadFolder = $TeamsUploadFolder
NewTeamsFolder = $NewTeamsFolder
NewTeamsUploadFolder = $NewTeamsUploadFolder
}
}
return $UsersTeamsFolders
}
Download
Please feel free to copy parts of the script or if you would like to download the entire script, simply click the download button. You can download the complete repository in a zip file by clicking the Download link in the menu bar on the left hand side of the page.
Report Issues
You can report an issue or contribute to this site on GitHub. Simply click the button below and add any relevant notes. I will attempt to respond to all issues as soon as possible.