Skip to content

Update-MSTTeamsAppInstallation

Teams: Updates a Teams App installation

#Requires -Version 5.1

[CmdletBinding()]
Param(
    [Parameter(Mandatory = $true, ParameterSetName = 'byTeam')]
    [string]$TeamID,
    [Parameter(Mandatory = $true, ParameterSetName = 'byUser')]
    [string]$UserID,
    [Parameter(ParameterSetName = 'byTeam')]
    [Parameter(ParameterSetName = 'byUser')]
    [string]$AppId,
    [Parameter(ParameterSetName = 'byTeam')]
    [Parameter(ParameterSetName = 'byUser')]
    [string]$AppInstallationId,
    [Parameter(ParameterSetName = 'byTeam')]
    [Parameter(ParameterSetName = 'byUser')]
    [string]$Permissions
)

Process {
    try {
        [string[]]$Properties = @('DisplayName', 'TeamsAppId', 'Version', 'TeamsAppDefinitionId')
        [hashtable]$cmdArgs = @{'ErrorAction' = 'Stop'}

        if ($PSCmdlet.ParameterSetName -eq 'byTeam') {
            $cmdArgs.Add('TeamID', $TeamID)
        }
        else {
            $cmdArgs.Add('UserID', $UserID)
        }
        if ($PSBoundParameters.ContainsKey('AppId')) {
            $cmdArgs.Add('AppId', $AppId)
        }
        if ($PSBoundParameters.ContainsKey('AppInstallationId')) {
            $cmdArgs.Add('AppInstallationId', $AppInstallationId)
        }
        if ($PSBoundParameters.ContainsKey('Permissions')) {
            $cmdArgs.Add('Permissions', $Permissions)
        }

        $null = Update-TeamsAppInstallation @cmdArgs
        $cmdArgs.Remove('AppId')
        $cmdArgs.Remove('AppInstallationId')
        $cmdArgs.Remove('Permissions')
        $result = Get-TeamsAppInstallation @cmdArgs | Sort-Object DisplayName | Select-Object $Properties

        if ($null -eq $result -or $result.Count -eq 0) {
            Write-Output "No app installations found"
            return
        }
        foreach ($item in $result) {
            $item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format 'yyyy-MM-dd HH:mm:ss') -PassThru -Force
        }
    }
    catch { throw }
}

Team identifier in Microsoft Teams

User identifier in Microsoft Teams

Teams App identifier in Microsoft Teams

Installation identifier of the Teams App

RSC permissions for the Teams App, e.g. "TeamSettings.Read.Group ChannelMessage.Read.Group"

An interactive directory of PowerShell scripts.