About Magnus Sandtorv

Office Apps & Services MVP, Microsoft Teams Evangelist, Enterprise Mobility Professional, PowerShell automation enthusiast with my head in the ☁️ Blog at Teams.rocks

/commands, quick reply, design changes and more arrives in Teams

In this article I will give you a quick overview of the /commands, as well as show you some of the latest design updates in Teams, and the nifty new quick reply feature.

With more than 1250 votes at the time of writing, /slash commands are a top request on the UserVoice for Microsoft Teams.

irc

While millennials (no offence) might think slash commands were invented by Teams rival Slack, my first encounter with these action specific shortcuts were actually in the early days of Internet (yeah, I’m that old), in the once so popular chat service IRC.

At the risk of making this into a history lesson, IRC (Internet Relay Chat) clients would most often connect to an open chat network, where one could join #channels. Similar to Teams, channels would keep conversations organized by topics, demographics etc. Slash commands like /join /away /help and /invite, were used for common tasks like… you guessed it, joining a channel or inviting a guest.

Before we jump into the /commands, lets take a quick look at the original design of the Microsoft Teams desktop or web client. In the bottom left corner you see the profile picture, which you could click to open a menu containing your availability, settings etc.

0_old_design.png

In the upper left, above all your teams, you had the search bar.

01_old_search

In the new design, at least as of this writing, a combined search and command bar has been moved to the top bar and centered, while the profile and availability has been placed in the top right corner, similar to the rest of the Office 365 apps.

1_TopBar

If you place the mouse cursor in the search area the help text gives you a clear indication that you now have new options for commands, using either / or @.

2_IMG_0415

/commands

Let’s first explore the /commands.

3_IMG_0416

As you can see, there are 17 /commands for a range of actions, with a nice help text on the right.

4_IMG_0417

Typing /files gives you a list of recent files which you can narrow down by adding a searh phrase. Clicking a file will open it within Teams, with the usual Edit button in the upper right corner.

5_goto

/goto will similarly give you a list of teams and channels, to get you quickly in the right direction.

6_whatsnew

I particularly like the /whatsnew command, which will give you the release notes. Not quite up to date (at least not in my tenant), but nevertheless a nice place to get an overview of the latest features.

/available, /away, /busy and /dnd (do not disturb) is a fast way to set your availability.

@commands

What about @commands/app commands?

Typing @ in the combined search and command bar will give you options like @Images, @News or @Weather, as well as a shortcut to reach the store.

97_weather_etc

Choosing one of them for the first time will allow you to install and add the app to a team with a few options.

99_news

Once installed you need to pick a channel, and you’re good to go.

News_channel

News

Clicking an article will open a summary, while clicking the summary opens the original site in the browser.

NewsArticle

You can also include information from these apps, or supported partner apps found in the store, directly in chat or conversations. That means there is no need to customize and insert a screenshot or paste in a link!

 

I added YouTube to a channel, let’s see what we can do:

YouTube

@mention the app just like you would any user, channel, team etc.

 

YouTube2

A menu pops up with the available options for the app in question.

 

YouTube3

Insert a search phrase and the app will present a list of popular videos.

 

YouTube4

Pick a video and it will be inserted into the chat or conversation, where you can continue editing the message to suit your needs.

 

For more information, make sure to check out the Office blogs.

Quick reply

Last but not least, let’s not forget this long awaited little timesaver; the quick reply box within the chat notification!

QuickReplyInitiate

Whenever someone send you a chat message while you’re not already in the chat itself, you get a popup right above the Windows system tray.

QuickReply.png

If you hit reply, a quick reply field opens up and lets you answer, well… quickly.

That’s all the news I have for you at this time, if you have any questions please use the comments below, or find me on Twitter (link on top of this page).

Assignments in Teams mobile apps

In this article I will give you a quick review of the assignment features in the Teams mobile apps, including how you can push assignments to multiple classes at once.

TeamsMobileAvailability

The Teams mobile client is available on iOS, Android and Windows Phone.

To get to an assignment in the mobile app, you can either open it from the assignment notification card in the activity feed or conversations area…

…or navigate to a class team and open Tabs in the upright corner

AssignmentTab

You will find Assignments in the list, clicking it will give you a list of previous and upcoming assignments, as well as a button to create a new assignment if you are logged on as a teacher (team owner).

IMG_0384

Clicking New assignment will open the exact same experience as the online and the desktop versions, with the exception of attaching reference materials and specifying what students will turn in, which is limited to the native OS controls.

IMG_0385

You even have the newly added option of assigning to multiple classes at once!

IMG_0386

When you assign to multiple classes you can edit the assignment for each individual class at a later time, if needed.

At the time of writing, you can attach reference materials and assignments stored locally on the device or in cloud storage like iCloud Drive, OneDrive and Dropbox. You also have the option to add photos from the Photo Library or take and add a photo or video with the device camera. OneNote Class Notebook integration is currently not available when creating an assignment.

Available cloud storage providers will depend on what is supported by the OS and installed on the device.

TakePhotoOrBrowse

IMG_0387

The student view also looks familiar, and choosing linked reference materials or work to be turned in will open the corresponding app. There is also a Turn in button in the upright corner when students are finished.

IMG_0398

If enabled students have the option to edit their assignment and turn in again.

TurnInAgain

When reviewed, teacher feedback and eventual points are available.

Save directly to Teams from Office desktop apps

In this short tutorial I will show you how to use the save as dialogue to save your files directly into the files area of your favourite teams.

 

While you have always been able to drag and drop files into Teams, or upload them by navigating to the files tab in a channel and choosing Upload…

Files-Upload

…many are still used to work inside their Office desktop apps.

 

They are often also acustomed to using the save as dialogue to browse folders when saving their documents, or navigating to OneDrive or SharePoint sites this way. How cool would it be to have access to your favourite teams right from within Office?

 

Well as of now you can, if you are on the Office 365 ProPlus Monthly Channel and your build is 8730 or later.

 

Let’s first check the Office build by opening Word, going to File in the upleft corner and then Account in the left menu. You should see the product information and the installed build on the right.

Office-Product-info

This is supposedly a staged rollout, so it might be another week or so until all clients/tenants are affected.

 

To save a document to Teams, open or create a document from one of the Office desktop apps (Word, Excel, PowerPoint), hit File followed by Save As and choose Sites – Your Company in the menu. In the right column you should see a list of your teams.

SaveAsToTeams

If you find that the sorting of teams in the list is confusing, there is a thread on TechCommunity discussing this and a Microsoft employee explaining that “The sorting in the Frequent list is based on activity, with greater weight being placed on a Group that you have saved or opened a file from”. It does however at this time seem to consider all interactions, which can cause confusion as to the sorting of the list.

 

Make sure to save to the appropriate channel, by first browsing Documents and then opening the corresponding folder. Please also note that if you rename a channel, the folder in the underlying SharePoint site will not update with the new name (and doing so manually will break stuff). Also saving outside of the channel folders can make the documents unavailable for the Teams client.

 

 

Plagiarism control arrives in Microsoft Teams for Education (via 3rd party)

In this post I will show you how to get plagiarism control for assignments delivered in Teams for Education, utilizing the newly released app Haldor Plagiarism Check.

After about six months of using Teams for Education in our district, one of the top requested features, by teachers, is the ability to check assignments for plagiarism.

There supposedly were talks between plagiarism control provider Turnitin and Microsoft a while back, but first up to offer a fully integrated solution is a Swedish LMS provider called Haldor.

Haldor themselves do not offer a plagiarism control service, instead they made an app for Teams for Education utilizing the APIs of plagiarism control provider URKUND.

While the app is freely available in the store, you need a subscription both from Haldor, to use the app, and from URKUND to use the plagiarism service.

Ready to see who might be cheatin’? Let’s dive in!

To connect the services Haldor needs your URKUND subscription UnitID. Both Haldor and URKUND will be happy to set you up with a test account, but the UnitID must be requested either from your sales rep or support@urkund.com (Haldor also offers to make the request on your behalf).

You then need to assign permissions to the app in your Office 365 environment, logging in via https://portal.haldor.se using Office 365 Global Administrator credentials.

Haldor Services

Click the Try-button in the bottom left corner (only present before trial is requested).

Once Haldor confirms connecting your URKUND UnitID you should be good to go.

Configuring Teams

Navigate to a class team, add a new tab, search for Haldor and choose Haldor Plagiarism check.

Haldor app search.png

Haldor app logga in.png

Hit Logga in (Sign in)…

SignInForm

…and sign in with your Office 365 credentials.

Choose assignments type

You will be prompted to choose assignments function, tick off Microsoft assignments (the only option actually available) and click Save.

If you haven’t yet given the app the appropriate permissions, you will get the above message.

Check for plagiarism

Once you have added Haldor Plagiarism check you will get a tab called Plagieringskontroll. The app is not yet fully translated into all languages, make sure you change it into something your users will understand.

This tab is where you will see all the assignments in the current team, and be able to control for plagiarism against URKUNDs plagiarism service.

Since the education APIs in Graph are currently in beta, Haldor Plagiarism check fetches the documents directly from the underlying SharePoint document library. This will change in a later update, but at this time, since the folder names vary depending on language, you will need to get in contact with Haldor to add the names for your language if assignments won’t show up. English, Swedish and Norwegian should work out of the box.

Test Class Result pane alt

Choose to control for plagiarism on either a selection of submissions or an entire assignment, and click Send to Urkund in the upleft corner of the plagiarism pane.

Loading.png

Wait patienly while the documents are uploaded.

Reload tab.png

After a few minutes you should be able to refresh the page (circle arrow icon in the upright corner), and get an updated Urkund status.

Result pane 2

When finished the Urkund status should show Analyserat (Analyzed), and you will get a plagiarism score as well as a link to a detailed report. Needless to say, a high score would trigger the need for further investigation, while a low score is considered safe according to URKUNDs algorithms.

Haldor Plagiarism check is a cloud app built on Azure. While the above was true when this was written around New Years 2017, things are subject to change, as Haldor has ambitious plans on their roadmap, including integrating the plagiarism functionality into the assignments view and migrating functionality to the Graph API.

Please also see Haldors video on YouTube, and feel free to ask questions in the comments below.

Anonymous guest sharing in Teams part two.

In this article I will show you how to allow anonymous sharing of folders and documents from Teams created by School Data Sync. This article will only cover the actual SharePoint permissions, for more information about sharing please read my initial post Anonymous guest sharing in Teams.

From the Docs we can learn that School Data Sync (SDS) is a free service in Office 365 for Education that reads the school and roster data from a school’s Student Information System (SIS). It creates Office 365 Groups for Exchange Online and SharePoint Online, class teams for Microsoft Teams and OneNote Class notebooks among other things.

Large schools and districts can save a lot of time using School Data Sync to automate the creation of teams, user accounts, teams membership, licensing etc. Just imagine creating class teams and adding memberships in a district with thousands of students and teachers, then imagine repeating that during every summer break… SDS can be a complex tool, luckily Microsoft also offer free one-to-one deployment support.

As I explained in the first part of this two part part series, default SharingCapability of the underlying SharePoint site is ExternalUserSharingOnly, not ExternalUserAndGuestSharing which is what is needed for anonymous sharing (sharing with users without an Azure AD account).

As previously shown we can easily change the SharingCapability of a single site, but to change in bulk all those created with School Data Sync, based on data from your Student Information System, we need to create a simple PowerShell script.

First up we need to save our admin credentials to a variable and connect to SharePoint Online PowerShell:


$Cred = Get-Credential

Connect-SPOService -Url https://tenantname-admin.sharepoint.com -Credential $Cred

Now we need to find all the SharePoint sites belonging to teams created by School Data Sync, first lets capture all sites in a variable:


$sites = Get-SPOSite -Limit All

School Data Sync will create teams based on what Microsoft refer to as Sections. A section could be a class, course or some other type of logical group in your SIS, and it will allways have a unique identifier that will be part of the URL of the underlying Sharepoint site. It would typically look like this:

https://tenantname.sharepoint.com/sites/Section_131408225065301513

At this point we have a variable containing all SharePoint sites, lets separate out those belonging to a team created by School Data Sync by filtering on the URL with a pipe to Where-Object:


$SDSSites = $sites | ? {$_.Url -like "https://tenantname.sharepoint.com/sites/Section_*" }

You can easily establish the total amount of SharePoint sites created by School Data Sync using the Count method.


$SDSSites.Count

Now that we have a variable containing the relevant SharePoint site objects, let’s summarize this whole excercise into a script to allow anonymous sharing in bulk:

# store admin credentials in a variable
$Cred = Get-Credential

# Connect to SharePoint Online PowerShell
Connect-SPOService -Url https://tenantname-admin.sharepoint.com -Credential $Cred

# store all SharePoint sites in a variable
$sites = Get-SPOSite -Limit All

# extract SharePoint sites created by SDS
$SDSSites = $sites | ? {$_.Url -like "https://tenantname.sharepoint.com/sites/Section_*" }

# set SharingCapability to ExternalUserAndGuestSharing

foreach($site in $SDSSites){

Set-SPOSite -Identity $site.Url -SharingCapability ExternalUserAndGuestSharing

}

Set-SPOSite is quite slow, depending on how many teams were created by SDS, this script can take hours to finish. Consider adding a progress counter using Write-Progress if $SDSSites.Count returns more than 100 sites.

When the script is finished you should be able to share anonymously from all teams created by SDS. Remember to repeat the process whenever new teams are added via your SIS (typically during winter and/or summer break).

Teams reports and the reports reader role

Recently the long awaited reports for Microsoft Teams surfaced in the admin center. As of the time this post is written there are two reports available; user activity and device usage.

As an administrator you will find the reports in the left hand menu.

reports_menu

On the usage page a Teams activity card is now available to give you a quick glance.

Activity_card

In the upleft corner of this page you can choose to Select a report, and you will find the new additions in the bottom.

Reports_picker

Choosing either of these will lead you to a page with nice graphs showing the amount of messages, chats, calls etc. for the last 7, 30, 90 or 180 days, or if users are connecting with clients for Windows, Mac, iOS, android etc.

device_usage

If you need to drill down further there is a detail pane below, and an Export button if you would like a CSV for further sorting and processing.

Reports reader role

These reports are great, but only available to administrators by default. Recognizing the need for non-admins to access reports Microsoft recently announced the reports reader role.

reports_reader

A global administrator can assign any user the Reports reader role, and they will get a new admin tile in the Office 365 home and apps page.

admin_tile

While a report reader at this time also can view users, groups, resources etc. in the admin portal, they are not able to perform any changes.

So what are you waiting for? Enable your stakeholders the possibility to gain actionable insight, in order drive usage and increase communication and collaboration.

You can read more about the reports and what’s coming in the Microsoft Tech Community.

Sync Teams files with OneDrive

In this post I will show you how you can sync the files in your team with OneDrive, to make them easily accessible from File Explorer and available offline if needed.

Updated with the new files experience February 2020.

Open Teams and the team you wish to sync, pick your favorite channel, and hit the Files tab.

sync teams with onedrive

If you only want to sync files from the current channel, feel free to hit the Sync button. To choose from the entire team (all channels), instead choose Open in SharePoint.

The SharePoint document library will open in your default browser (depending on your environment you might have to log on with your Office 365 credentials).

Click the Documents, followed by the Sync button, and OneDrive will open.

Depending on whether or not you have synced your personal OneDrive or another SharePoint site you might need to log on and go through the first launch experience.

Windows 10 will provide you a toast message confirming the sync, and open the local folder.

You can see in the above screenshot all channels are synced. If you prefer to keep only a subset of the channels you can click the OneDrive icon in the bottom right corner and choose Settings, followed by Choose folders.

If you sync the whole team, and someone adds a channel, those files won’t sync until you add the folder from SettingsChoose folders in OneDrive.

Manage Teams on the go (like a boss…)

As an Office 365 admin you might get a request while out of the office or otherwise not in front of a computer. Continuing on the example from the education sector, a teacher might be home sick and the substitute teacher needs access to the class team.

There are several ways to add an owner to a team as an Office 365 admin, like the Office 365 Admin center, the Azure AD Portal or as usual PowerShell.

While on the go some of these options are just as viable with an appropriate device, you also have the option of using the native Office 365 Admin app or the Azure Cloud Shell.

The easy way out would be to download the Office 365 Admin app.

Log on, choose Groups in the left side menu and search for the relevant group. Click the group in the list and choose Edit owners in the right column menu.

On iOS the box on the right will surface and when you click Add owners you will be able to search for a user to add.

The rest of the process is quite self explanatory so let’s move on to the fun part of this post…

Azure Cloud Shell

As before mentioned you can accomplish the same using PowerShell in Azure Cloud Shell.

First up you need to download the Microsoft Azure app. Login with an appropriate admin account and launch the Cloud Shell.

The first time you use the Cloud Shell you need to let it provision a storage account. Choose a suitable Azure subscription and wait a few seconds until it is ready. You will see under resources that there has been provisioned both a resource group in your region and a storage account.

Unfortunately it seems you cannot use the Azure subscription provisioned with Office 365 for access to Azure AD, you will instead need to setup a regular subscription.

The Cloud Shell will launch Bash by default, make sure you change it to PowerShell in the upleft corner.

The Shell should connect to your tenant automatically and you will end up with a prompt like this:

img_0333

While you could use the Azure AD PowerShell cmdlets, I prefer doing this the Microsoft Teams way.

When you add a user as a member or owner to a team using Microsoft Teams, it’s available to the user instantly. When you add a user to the associated group in the Office 365 Admin portal, Azure AD Portal or with the Azure AD cmdlets, it can take hours until the changes are synced. While this unfortunately is the case also using the new Microsoft Teams PowerShell module version 0.9.1 [… The Teams application may need to be open for up to an hour before changes are reflected…], I believe this will change in a future version, so we might as well get used to doing this the Microsoft Teams way.

The Microsoft Teams PowerShell module is not installed by default in the Cloud Shell.

To install it we can simply run:

Install-Module MicrosoftTeams -force
Import-Module MicrosoftTeams

Check that the cmdlets are loaded with:

Get-Command -Module MicrosoftTeams

 

After we log on to the Microsoft Teams service we should be all set to add our teacher to the class team. For that we need credentials which we will save to a variable.

$creds = Get-Credentials
Connect-MicrosoftTeams -Credential $creds

To add a user to a team we need the users UserPrincipalName, which most commonly is their email address. We also need the GroupId of the team, which is where these beta cmdlets show their weakness. As of version 0.9.1 the Get-Team cmdlet is user centric.

“Gets all the teams the user is part of. The user must be you – you can only get information on yourself.” MS Docs

To be honest this doesn’t make much sense to me, and you should expect it to change in a later update.

Lacking a way to get the appropriate GroupId we must turn to the AzureAD cmdlets after all. Let’s first connect to the service and then store the class team’s group object in a variable.

Connect-AzureAD -Credential $creds
$group = Get-AzureADGroup -SearchString "Math 101"

We are now ready to add the substitute teacher to the class team, and promote her to Owner (teacher):

Add-TeamUser -GroupId $group.ObjectId -User miss.teacher@domain.com
Add-TeamUser -GroupId $group.ObjectId -User miss.teacher@domain.com -Role Owner

 

OK, I admit it’s neither the fastest nor the easiest way to add members to a team, but it opens up for scripting and automation which can reduce errors and ensure compliance. And it’s PowerShell, in the cloud, on a mobile device. Pretty cool right?

Anonymous guest sharing in Teams

To kick-start this blog I would like to show you how to share folders or documents, like the weekly schedule, homework etc., with anonymous guests like parents.

For the sake of clarity, these are not guests invited to the actual team, but rather anyone receiving or accessing the link, by email, a text message or from a webpage.

Unfortunately for our use case, when a team is created, the underlying SharePoint site has a default SharingCapability of ExternalUserSharingOnly. We can find the SharingCapability by logging onto Sharepoint Online with PowerShell, as an admin user with the appropriate permissions:

Connect-SPOService
Get-SPOSite -Identity siteurl | select SharingCapability

SharingCapability : ExternalUserSharingOnly

We can see in the docs that ExternalUserSharingOnly allows external user sharing (share by email), but not guest link sharing.

SharingAnyoneDisabled

What we need is ExternalUserAndGuestSharing, where both external user sharing, and guest link sharing are enabled; Let’s see how we can acomplish that using powershell.

First, we need to establish the site url. There are several ways to get the URL, but as an end user we can find it by navigating to the team’s general channel and the files tab, then choose open in SharePoint. A browser window will open with a long URL, where you will need to extract everything including what comes immediately after /sites/. The rest of the URL can safely be ignored.

The URL should look like this: https://tenantname.sharepoint.com/sites/teamname
(teamname at the end of the URL is not the displayname, but what is called mailnickname in Azure AD)

Let’s store the URL in a variable for later use:

$siteurl = https://tenantname.sharepoint.com/sites/teamname

The same information is accessible with Exchange Online powershell, you can easily while logged on get a list of Groups and their SharePointSiteUrl with the following command:

Get-UnifiedGroup | select DisplayName, Alias, SharePointSiteURL

Then all we need to do is change the SharingCapability property:

Set-SPOSite -Identity $siteurl -SharingCapability ExternalUserAndGuestSharing

To be sure let’s check the SharingCapability one last time:

Get-SPOSite -identity $siteurl | select SharingCapability

SharingCapability : ExternalUserAndGuestSharing

Now you can choose a folder or document whithin the team’s SharePoint site and share with Anyone. In this setting you would most likely also want to disallow editing. Once you hit Apply you can copy the link and distribute it as you choose. Happy sharing!

SharingAnyoneEnabled

Stay tuned for more on this, in a later article I will show you how to do this in bulk for teams generated by School Data Sync, and maybe all SharePoint sites belonging to Class, PLC or Staff teams.