teams channel
9 TopicsDelete Channel based Meeting created by person who left organization
Hi Team, We have a Channel based meeting scheduled by an ex-team member currently who is no longer part of the organization. We would like to delete / update that meeting, but we are unable to do it although having owner permissions on the teams' channel group. Could you please provide some guidance here or let me know how to delete the meeting? Thanks!1.3KViews0likes7CommentsNo "+" - button in specific teams channel available
Hey there, we got one specific teams channel with no "+" option for new tabs / notebooks etc. as in other channels. I got full permission to this channel. A long time ago, when MSannounced that the wiki-tab will be gone, i exported all other wikis from other channels with no problems, but also in this specific channel where the "+" button is missing, i was not able to export our wiki (the export option was not showing up since then). Can anybody tell me what's the problem here? Thanks! best regards, Philipp600Views0likes0CommentsBug on Teams Public Preview
Is there anyone else who is experiencing the same behavior other than us? In Teams Public Preview, when you post in a Teams Channel - like for example I entered a word "Microsoft Teams". When I move my cursor behind letter T on Teams and click on it. The cursor will automatically move on the last part of the word Teams, so the cursor will move after the letter S. Just wanted to verify that this is a bug or what. Thank you!Automating your Microsoft Teams creation process using PowerShell
Microsoft Teams’ daily users are skyrocketing. From April 2020 to October 2020, their numbers rose more than 50 percent from 75 million to 115 million. Suppose your company decides to adopt this software for daily internal or external communications. In that case, you might face the manual construction of public/private teams and channels, assign Office 365 users to them, and so on. This procedure might become very time consuming as the complexity of your company increases. To solve this problem, Ihave created a script that takes care of all of this for you by automating the entire process. The only thing you must do is create a JSON file as described below and pass a few parameters to the script. Configuration file This JSON file contains all the teams and channels that you want to create in your organization. You can also specify each object’s visibility (private or standard), the users you wish to assign to it, and their roles. The schema of the JSON is the following: { "definitions": {}, "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://example.com/object1610484731.json", "title": "root", "type": "object", "required": [ "teams" ], "properties": { "teams": { "$id": "#root/teams", "title": "teams", "type": "array", "default": [], "items": { "$id": "#root/teams/items", "title": "items", "type": "object", "required": [ "displayname", "visibility", "users", "channels" ], "properties": { "displayname": { "$id": "#root/teams/items/displayname", "title": "displayname", "description": "Team display name", "type": "string", "default": "", "examples": [ "public team1" ], "pattern": "^.*$" }, "visibility": { "$id": "#root/teams/items/visibility", "title": "visibility", "description": "Team visibility", "type": "string", "default": "public", "enum": ["public", "private"], "examples": [ "public", "private" ] }, "users": { "$id": "#root/teams/items/users", "title": "users", "type": "array", "default": [], "items": { "$id": "#root/teams/items/users/items", "title": "items", "type": "object", "required": [ "email", "role" ], "properties": { "email": { "$id": "#root/teams/items/users/items/email", "title": "email", "description": "User email", "type": "string", "default": "", "format": "email", "examples": [ "user1@domain.com" ] }, "role": { "$id": "#root/teams/items/users/items/role", "title": "role", "description": "User role", "type": "string", "default": "owner", "enum": ["owner", "member"], "examples": [ "owner", "member" ] } } } }, "channels": { "$id": "#root/teams/items/channels", "title": "channels", "type": "array", "default": [], "items": { "$id": "#root/teams/items/channels/items", "title": "items", "description": "Team users", "type": "object", "required": [ "displayname", "membershiptype", "users" ], "properties": { "displayname": { "$id": "#root/teams/items/channels/items/displayname", "title": "displayname", "description": "Channels display name", "type": "string", "default": "", "examples": [ "public channel" ], "pattern": "^.*$" }, "membershiptype": { "$id": "#root/teams/items/channels/items/membershiptype", "title": "membershiptype", "description": "Channels membership type", "type": "string", "default": "standard", "enum": ["standard", "private"], "examples": [ "standard", "private" ] }, "users": { "$id": "#root/teams/items/channels/items/users", "title": "users", "description": "Channels users", "type": "array", "default": [], "items": { "$id": "#root/teams/items/channels/items/users/items", "title": "items", "type": "object", "required": [ "email", "role" ], "properties": { "email": { "$id": "#root/teams/items/channels/items/users/items/email", "title": "email", "description": "User email", "type": "string", "default": "", "format": "email", "examples": [ "user1@domain.com" ] }, "role": { "$id": "#root/teams/items/channels/items/users/items/role", "title": "role", "description": "User role", "type": "string", "default": "member", "enum": ["owner", "member"], "examples": [ "owner", "member" ] } } } } } } } } } } } } The following example shows how to create different teams and channels with multiple users and permissions: { "teams":[ { "displayName": "Public team1", "visibility": "Public", "users": [ { "email":"User1@domain.com", "role":"Owner" }, { "email":"User2@domain.com", "role":"Member" }, { "email":"User3@domain.com", "role":"Member" } ], "channels": [ { "displayName": "Public channel", "membershipType": "Public", "users":[] }, { "displayName": "Private channel", "membershipType": "Private", "users":[ { "email":"User1@domain.com", "role":"Owner" }, { "email":"User2@domain.com", "role":"Member" } ] } ] }, { "displayName": "Public team2", "visibility": "Public", "users": [ { "email":"User1@domain.com", "role":"Owner" }, { "email":"User2@domain.com", "role":"Member" }, { "email":"User3@domain.com", "role":"Member" } ], "channels": [ { "displayName": "Public channel", "membershipType": "Public", "users":[] }, { "displayName": "Private channel", "membershipType": "Private", "users":[ { "email":"User1@domain.com", "role":"Owner" }, { "email":"User2@domain.com", "role":"Member" } ] } ] } ] } Script This script is based on the official Microsoft Teams PowerShell module. If you are using a version of PowerShell prior the 1.0.18, you might face the following error: New-TeamChannel : A parameter cannot be found that matches parameter name 'MembershipType'. At line:1 char:101 + ... upId -DisplayName PrivateChannelDisplayName -MembershipType Private + ~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [New-TeamChannel], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.TeamsCmdlets.PowerShell.Custom.NewTeamChannel The problem is that the creation of private channels is not supported by versions prior to 1.0.18. At the time of this writing, I am using version 1.1.10-preview. The logic of this script is straightforward. However, there are few keynotes: Because each team and private channel has its dedicated SharePoint communication site, channels are created asynchronously. To solve possible issues related to assigning users to an incomplete instance, the functionAdd-UserToPrivateChannelwill perform several attempts to set users to a private channel. If you want to set a user as the owner of a private channel, the user must first be added as a standard user and then changed to the owner. Param( [Parameter(Position=0)] [string]$Office365Username, [Parameter(Position=1)] [string]$Office365Password, [Parameter(Position=2)] [string]$TeamsFilePath ) Write-Verbose "Importing modules" $Module = Get-Module -Name MicrosoftTeams -ListAvailable if($Module.Count -eq 0) { Write-Verbose "Installing MicrosoftTeams module" Install-Module -Name MicrosoftTeams -AllowPrerelease -AllowClobber -Force } Function New-MicrosoftTeam([object]$Team) { Try { Write-Verbose "Creating $($Team.DisplayName) $($Team.Visibility) team" $NewTeam = New-Team -DisplayName $Team.DisplayName -Visibility $Team.Visibility Write-Verbose "Adding $($Team.Users.Length) users to $($Team.DisplayName) team" $Team.Users | ForEach-Object -Begin { $Index = 0 } -Process { $Index = $Index + 1 Write-Progress -Id 1 -ParentId 0 -Activity "Add user to the team" -Status "$($Index) of $($Team.Users.Length) - User: $($_.Email), Role: $($_.Role)" -PercentComplete ($Index/$Team.Users.Length*100) Write-Verbose "Adding $($_.Email) to $($Team.DisplayName) teams as $($_.Role)" Add-TeamUser -User $_.Email -Role $_.Role -GroupId $NewTeam.GroupId } -End { Write-Verbose "Users succesfully added to the $($Team.DisplayName) team" } Write-Verbose "Add $($Team.Channels.Length) channels to $($Team.DisplayName) team" $Team.Channels | ForEach-Object -Begin { $Index = 0 } -Process { $Index = $Index + 1 Write-Progress -Id 2 -ParentId 0 -Activity "Creation of a new channel" -Status "$($Index) of $($Team.Channels.Length) - Display Name: $($_.DisplayName), Membership Type: $($_.MembershipType)" -PercentComplete ($index/$Team.Channels.Length*100) New-TeamChannel -DisplayName $_.DisplayName -MembershipType $_.MembershipType -GroupId $NewTeam.GroupId Write-Verbose "Check channel membership type" if('Private' -eq $_.MembershipType -And $_.Users.Length -gt 0) { Write-Verbose "Add $($_.Users.Length) users to $($_.DisplayName) private channel" $_.Users | ForEach-Object -Begin { $IndexUsers = 0 $UsersLength = $_.Users.Length $DisplayName = $_.DisplayName } -Process { $IndexUsers = $IndexUsers + 1 Write-Progress -Id 3 -ParentId 2 -Activity "Add user to the private channel" -Status "$($IndexUsers) of $($UsersLength) - User: $($_.Email), Role: $($_.Role)" -PercentComplete ($IndexUsers/$UsersLength*100) Write-Verbose "Adding $($_.Email) to $($DisplayName) private channel as $($_.Role)" Add-UserToPrivateChannel -DisplayName $DisplayName -Email $_.Email -Role $_.Role -GroupId $NewTeam.groupId } -End { Write-Verbose "Users succesfully added to the $($_.DisplayName) channel" } } } -End { Write-Verbose "Channels succesfully created" } } Catch { Write-Error "Message: [$($_.Exception.Message)]" -ErrorId B1 } } Function Add-UserToPrivateChannel([string]$DisplayName, [string]$Email, [string]$Role, [string]$GroupId) { $MaxNumberOfAttemps = 5 $Attemps = 0 do { try { Write-Verbose "$($Attemps) attempt/s" Write-Verbose "Waiting $(60*$Attemps) seconds" Start-Sleep -s (60*$Attemps) Write-Verbose "Adding $($Email) to $($DisplayName) private channel" Add-TeamChannelUser -DisplayName $DisplayName -User $Email -GroupId $GroupId Write-Verbose "Check user role" if("Owner" -eq $Role){ Write-Verbose "Set $($Email) as owner of the $($DisplayName) private channel" Add-TeamChannelUser -DisplayName $DisplayName -User $Email -Role "Owner" -GroupId $GroupId } break; } catch { $Attemps = $Attemps + 1 if($_.Exception.ErrorCode -ne 404 -And $attemps -eq $MaxNumberOfAttemps){ throw } } } while ($Attemps -lt $MaxNumberOfAttemps) } Write-Verbose "Generating secure password" $SecurePassword = ConvertTo-SecureString -AsPlainText $Office365Password -Force Write-Verbose "Generating PSCredential object" $Credentials = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $Office365Username, $SecurePassword; Write-Verbose "Connecting to Microsoft Teams" Connect-MicrosoftTeams -Credential $Credentials Write-Verbose "Read JSON file from $($TeamsFilePath)" $Json = Get-Content -Raw -Path $TeamsFilePath | ConvertFrom-Json $Json.Teams | ForEach-Object -Begin { $Index = 0 } -Process { $Index = $Index + 1 Write-Progress -Id 0 -Activity "Creation of the teams" -Status "$($Index) of $($Json.Teams.Length) - Display Name: $($_.DisplayName), Visibility: $($_.Visibility)" -PercentComplete ($Index/$Json.Teams.Length*100) New-MicrosoftTeam -Team $_ } -End { Write-Host "Update completed" -ForegroundColor Green } References PowerShell module:https://www.powershellgallery.com/packages/MicrosoftTeams/1.1.10-preview GitHub repository:https://github.com/GTRekter/Apollo5.3KViews1like0CommentsMFD scanning to Teams channel email address
I hope that by posting this it will help others who have similar issues. Our issue was: - Moving departments from file shares to teams, staff were user MFD scan to file share functionality. Our immediate response was: - No problem we can setup Scan to Email, where the the user sends to the Teams / Channel email address When we did the testing it worked fine. What we discovered was that our testing (5 pages) and what actually was going on (50 to 100 pages) caused issues. Small documents - scan to Teams / Channel email : no problem Big documents -scan to Teams / Channel email : never appeared in the Channel. So we tried to figure out where the emails went. It turns out they were going via this route from the MFD scanner to the Teams / Channel : paper document put document into MFD scanner scanner creates PDF and emails it Middleware software provided by our printer provider gets the email, then sends it to MS Exchange Mail relay, which accepts the scanner's email and attachment MS Exchange Mail relay sends the email and attachment out as a valid email to M365 mail system (which provides some spam removal and protection Reference) which sends it on to Teams channel which saves the attachment in '<ChannelName>/Email messages' SharePoint folder Along the way we found multiple places where LARGE documents were getting stopped. To get things flowing we did the following: To reduce the size of the documents we reduced the default DPI setting on the MFD scanner to 200dpi, but after testing we left the Auto Color setting. We found a 20Mb limit on the Middle ware software, which we increased We also found a 20Mb limit for our Microsoft exchange mail relay, which we increased Though there is a stated limit on the size of emails to channels we haven't seen that come into play in our testing (we're not sure why). Reference With these settings we found that the scans turned up as attachments in the Teams / Channel. Yeah! But it took 3 of us (1 user and 2 IT staff) about a week off an on to figure this out, mostly because once the email reaches the M365 world there is no obvious logging / tracking or error notifications. We are looking at other printer/scanner MFD middleware software that would allow "Scan to sharepoint" based on the printer's logged in user i.e. I go to the printer, fob login, then see a list of all the SharePoint sites I am a member of. I hope that this helps others who are having similar issues by helping them understand where the scanned attachments may be being stopped.3.4KViews0likes0CommentsRestrict to Upload data in Files Tab in Private Channel for Students
Hi Team, Need to restrict student to upload the files and documents in Filesin private channel. Is there any way to restrict the student. Tried to disable the sharepoint license for particular user but still they can able to upload the files in Private channel.1.7KViews0likes1CommentChannel Tab - refreshes every time
In my Microsoft Teams account, channel has multiple tabs pointing to different websites/Power BI reports. Whenever i access the tab, the tab refreshes newly and all my old filter settings are cleared. Is there a way to stop refreshing of tab in teams channel?Solved1.4KViews1like1CommentHow to prevent users from Joining Private groups without invite
Recently we noticed that user in our tenant are able to join private Teams channels with out an invite to join the private groups/channel. I am trying toinvestigate how this was possible and i am unable to reproduce the problem. Has anyone notice this behavior in your tenant. Any suggestions on how to find out how the users where able to join ?4.7KViews0likes3Comments