Using Microsoft Teams for Personal Accounts

With the amazing uptake of Microsoft Teams in the corporate space over the past few years, Microsoft has been working hard to define a free, personal version of the collaboration platform. Launching first on mobile devices earlier this year, the home and family version of Microsoft Teams brings the power and learnings made in the enterprise offering, simplifies it a bit and gives personal users a fantastic platform for social communication and collaboration.

Using Microsoft Teams With A Personal Account

The mobile Teams app now fully supports Personal Microsoft account sign-in with switching between personal and work accounts available. This functionality is rolling out this month for the Desktop client also. This means that corporate Teams users will be able to easily switch between personal and work accounts on the same machine. Support for multiple corporate accounts is still on the roadmap but now release date yet.

To sign in to Teams personal, log into https://teams.live.com with your personal Microsoft account and you’ll get to the personal version of the Teams web client.

From here you can manage meetings via your Outlook.com calendar and chat / meet with other personal account users in a stripped down version of the familiar Teams interface. You can also share and collaborate on OneDrive files within Teams.

Teams for personal use is a very stripped down version of the full experience that comes in the full product but as time goes on, more functionality will be brought across. For now, it is a great way to communicate quickly and efficiently with family and friends through the familiar interface we’ve all grown to love (or hate) over the past few years.

Using Delegated Access Permissions in PowerShell to Manage all Microsoft 365 Services

I recently posted about how we can use Delegated Access Permissions via a partner relationship to connect to an Exchange Online organization through PowerShell. This is a fantastic piece of functionality for MSPs and CSPs to manage multiple tenancies securely without having managing a set of admin identities for all of their customers.

To expand on the previous post, I thought I would put together each of the PowerShell modules that support delegated admin permissions in one place and also highlight any that I feel are missing.

In this post I will go through the connection methods (where available) using DAP for each of the below modules:

  • ExchangeOnline
  • MSOnline
  • Azure AD
  • MicrosoftTeams
  • Skype for Business
  • SharePoint Online
  • Security & Compliance Center

Exchange Online Module (v2)

I’ve gone through this one recently in another post so full information is available there. In short, we cann connect to Exchange Online Powershell using the Exchange Online (v2) PowerShell Module by specifying the tenant domain in our connection command.

First, install the module as normal:

Install-Module ExchangeOnline

Once installed, restart PowerShell and connect using the customer tenancy domain:

Connect-ExchangeOnline -DelegatedOrganization <customerdomain.onmicrosoft.com>

MS Online Module

The MS Online Module works a little differently in that we don’t connect directly to our customer tenancy, we specify the tenancy in our commands.

We install the module with:

Install-Module MSOnline

Then we connect to our own service as normal:

Connect-MsolService

Once we are connected, we need to locate the Tenant ID of our target organization. If we don’t have it to hand we can find it using the tenant domain in the below command:

Get-MsolPartnerContract -DomainName <customerdomain.onmicrosoft.com> | Select-Object TenantID

Once we have the TenantID output (which will be a GUID), we can run commands against the tenant as below, using the -TenantID flag:

Get-MsolUser -All -TenantId <TenantID>

Azure AD Module

To connect to Azure AD, we need the Tenant ID from above to use in our connection. We can install the AzureADPreview Module:

Install-Module AzureADPreview

We then connect using our Tenant ID with the below command:

Connect-AzureAD -TenantId <TenantID>

Microsoft Teams Module

For Microsoft Teams we use the Tenant ID again. Install with:

Install-Module MicrosoftTeams

And then we connect with the Tenant ID as below:

Connect-MicrosoftTeams -TenantId <TenantID>

Skype for Business Module

The Skype for Business Module is interesting in that a lot of organizations have moved off Skype to use Microsoft Teams. The Skype module is still required to manage certain aspects of Teams though. The connection to the module is equally as strange. Once we have connected to Teams as above, we then new to create out connection to Skype using the below commands to create the session and then import it:

$session = New-CsOnlineSession
Import-PSSession $session

This will connect our existing Teams session to the Skype for Business module!

SharePoint Online Module

Unfortunately the SharePoint Online Module does not support DAP at the moment. I will update this post when/if it becomes available.

Security & Compliance Center Module

The Security and Compliance Center Module is installed as part of the Exchange Online (v2) module and allows connection to services such as DLP and Information Protection.

To connect to the Security & Compliance Center we can install the Exchange Online (v2) module as above and use the -DelegatedOrganization flag to specify our customer domain:

Connect-IPPSSession -DelegatedOrganization <CustomerDomain>

And that’s it, that’s pretty much all the modules I use on a daily basis, I will update this post as/when more updates or modules are available.

Bring Yammer into Microsoft Teams with the Communities App

The current version of Yammer is almost unrecognizable from the initial release years back. It really has earned it’s place in the Microsoft 365 ecosystem as an enterprise grade communication tool right alongside Teams and SharePoint. As part of a digital transformation project, there are tons of use cases for Yammer and when used correctly, it can be really effective for communication and collaboration.

The flexibility and overall familiar “Social Media” feel to Yammer means adoption is actually much easier than you might expect. As with a lot of the Office 365 stack now though, Yammer can be brought directly into Teams to give users easy access so the cool features it provides. This is where the “Communities” app comes in. Communities is the name for the Yammer app in Teams. A user or admin can deploy the app to the Team client to give access to all of a users Yammer communities directly from the client itself, cutting out on switching between different web pages etc. This can be done manually or via Teams app policies.

This is a nice way to use Teams to obfuscate the back end tools and bring the functionality right to the user. While this is a nice feature, the real power of the communities app comes when it is added to a Team channel.

To add communities to a channel, we simply add a new tab to an existing or new channel in Teams and select ‘Communities’.

Then we can select which Yammer community or topic we can to link in that channel. For instance, we can link a particular project Team to the relevant community or topic to read or provide updates on project status to the business.

When we link a topic, we can follow any posts relating to the topic and reply. This works really well for tracking companywide updates on particular workstreams.

When we link a community, we can post and interact within the community. This works for Project Teams to provide updates to the business and discuss within the community.

These concepts aren’t new in the Yammer world but linking them in Teams, similar to the Tasks app really shows the power that comes with integration of the different tools in the platform. I find that as more tools are used together in Office 365, the value of each to the business increases exponentially.

Presenting each tool as a part of the whole collaboration platform is a key to user training and adoption. Our users don’t really care that there is an app called Yammer that does one thing really well, however, when we present the platform as a whole, the backend Yammer functionality becomes part of the ecosystem they work in every day. This allows users to leverage this functionality with minimal effort and uncomplicates the various backend considerations that IT need to be aware of.

As with any of the Office 365 tools, training end users on the use cases for each and helping to show the benefits of each communication tool is key to any deployment. Don’t underestimate the value of a true adoption & change management program.

For more information on the Communities app, check out the official Microsoft documentation here.

Keeping Up With Change: Planning For Microsoft Teams Public Preview

With the ‘evergreen’ nature of Microsoft Cloud services, we get a constant stream of new features and fixes that could never be matched in an on premises environment. The technical change itself would take up way too much time to plan, implement and support. Many organizations are still running legacy, out of support versions of Microsoft apps for example (Office 2010 is still hanging around in a lot of environments).

No service has seen as much innovation at such a rapid pace as Microsoft Teams. Coming from a new concept in the Microsoft ecosystem to being the fastest growing product Microsoft have ever seen, reaching 115 Daily active Users in October 2020, jjust three years after launch. The support and development of Teams has scaled to match this, with new major features being released at a monthly, if not weekly pace.

Adoption and Change Management

For large organizations, the key to keeping up with the pace of technical change in the cloud is a proper Adoption and Change Management plan. If we’re not training our users on how to use all these new tools correctly, we are not seeing the full productivity benefit or return on investment from our licensing costs.

This doesn’t just go for Teams, all cloud services are subject to constant updates and feature releases. Recently I’ve posted about ‘Project Moca‘ and the ‘Pin Email feature in Oulook‘, just two recent updates that I now can’t see myself going without!

Managing change for Microsoft 365 is different from a lot of on premises applications as it’s not just a single push for training and adoption, but a mindset and ongoing process to keep our users up to date on the tools available to them. True, the initial gap needs to be filled to get users up to date on the service as it is, that is generally a larger program which may include classroom based training, webinars, training material etc. But after this initial upskilling, there should also be a constant stream of much smaller communications to ensure our users stay up to date with what new features are available to them and benefit from them.

Assess the Features Early

With Microsoft Apps for Business and Windows 10 Enterprise, there have always been ‘update channels’ to allow us to deploy the newest features early to a set of users. This is critical to assessing and embracing what’s coming as we can test with a real world group of users, build any comms or training packages we need to and discover/mitigate any potential issues the new features could have in our environment.

These early adopters are generally key members of the business who can help by being ‘Change Champions’ and essentially singing the change management song to the rest of the organization while also assessing and giving feedback on any new features not yet deployed to the rest of our users.

Teams Public Preview Option

Along with the Microsoft Apps for Business and Windows 10 update channels, in November 2020 Microsoft Teams is getting it’s own public preview policy. Admins will be able to specify the group of users who will receive updates early and get to assess them.

A new section of the Teams Admin Center will be made available called ‘Update Policies’ where, similar to Apps and Windows, an admin can determine who has preview features available to them by creating and deploying update policies.

Select the Update policies option

Once this feature rolls out to your tenant you will be able to onboard your targeted users and enable all the new cool features for them to test (and possibly break) before finalizing any comms or training material/

Teams update policies are set to roll out in Mid-November 2020. For more information check out the Microsoft Article here.

End of Support for Teams Web App on IE11

As Microsoft work to finish the move to Microsoft Edge, the new version of Edge that is, more and more services are becoming unsupported on Internet Explorer. Internet Explorer 11 is now considered by Microsoft to be a legacy browser and all efforts for functionality and supportability are going into Microsoft Edge (Edge Chromium) going forward.

A big step in this process is the end of support for Microsoft 365’s golden child at the moment – Microsoft Teams. As of the 30th of November 2020, the Microsoft Teams web app will no longer be supported on Internet Explorer 11. This is the first step towards removing support for Microsoft 365 apps and by August 2021, all Microsoft 365 apps will cease to support Internet Explorer.

What do I need to do?

The good news is that it’s very easy to upgrade to the new Microsoft Edge browser! There are GPOs and deployment methods available to you. It is also available as part of a standard Windows update to all Windows 10 (1803 and higher) devices. For downlevel devices, new Edge can be downloaded here.

If you haven’t already deployed new Edge, then now is the time to do it. The browser performs brilliantly and is leaps and bounds ahead of the classic Microsoft Edge and Internet Explorer. Personally I’ve switched from a longtime Google Chrome user fully to Microsoft Edge this year and haven’t looked back.

Any required version of IE can be kept on the machine for legacy web apps or line of business apps that don’t support Edge or Chrome but for the Microsoft 365 web apps, it’s important to plan this upgrade now if you haven’t already!

For more information on the roadmap for support of IE11 in Microsoft 365, check out this Microsoft article.

PowerShell Script To Migrate Users From Skype On Premises to Microsoft Teams

With the functionality available in Microsoft Teams, lot of organizations are focusing moving from an on-premises Skype for Business server to full Microsoft Teams Voice. This requires user accounts to be migrated to Teams and assigned Full Teams Only Mode.

I’ve put together a handy script to allow the migration from Skype to be user friendly and seamless from a admin perspective. The below script will give an export of all users and allow an admin to select one or more users and process them for migration. The script should be imported using “import-module TeamsMove.ps1” into the Skype for Business PowerShell Module and then the process can be kicked off by running the function “Move-ToTeams”. The script can be found on GitHub here.

Warning: This script may not run as expected in your environment and is used for illustration. It may need to be modified for your exact use case. Ensure you understand the steps and test before running in your environment.

##This function allows us to select users who are still homed in Skype for business
function move-toTeams-selectusers{
    $i = 1
    ##Allow selection of one or multiple users
    $users = (Get-CsUser -ResultSize unlimited | ?{$_.registrarPool -notlike $null} | Out-GridView -PassThru -Title "Select One or more users to migrate")
    
    ##Writing Progress to Screen
    Write-host you selected $users.count users

    ##check if it's array
    if($users -is [array]){
        foreach($User in $users){
        
             write-host Moving user $i of $users.count : $user.SipAddress

             Move-ToTeams-performMove $user
             $i++
        }
    }else{
            
            write-host Moving single user: $users.SipAddress
            Move-ToTeams-performMove $users

     }
}

function Move-ToTeams-performMove{
    <#
    .SYNOPSIS
    This function performs the move from Skype on Premises to Teams
    
    .DESCRIPTION
    This function accepts a user account and moves the user to Teams
    
    .PARAMETER useridentity
    Takes a user in for processing by the migration process
        
    .NOTES
    General notes
    #>
    param($useridentity)

    ##Removes conferencing policy from user account
     Grant-CsConferencingPolicy -PolicyName "No Dial-in" -Identity $useridentity.identity
     
     ##Create Dialog
     $a = new-object -comobject wscript.shell 

     ##Prompt for if calling policy should be enabled
     $intAnswer = $a.popup("Should " + $useridentity.sipaddress + " be enabled for outbound calling", 0,"Outbound Calls",4) 
    
    ##IF yes
    If ($intAnswer -eq 6) { 
        ##warn admin to ensure license is assigned
       $a.popup("Enabling Calling Policy for " + $useridentity.sipaddress + ", make sure they are licensed for Calling or this will fail!") 
        ##Enable outbound calling
        Set-CsUser -Identity $useridentity.identity -EnterpriseVoiceEnabled:$True
    }##Else no 
    else { 
        $a.popup("Removing Calling Policy from " + $useridentity.sipaddress + ", license can be removed if assigned") 
        ##Disable outbound calling
        Set-CsUser -Identity $useridentity.identity -EnterpriseVoiceEnabled:$False -Confirm:$false
    } 
  
    Try{
        ##Moves user to Teams
        Move-CsUser -Identity $UserIdentity.identity -Target sipfed.online.lync.com -MoveToTeams -Credential $credentials -HostedMigrationOverrideUrl $url -ErrorAction Stop -Confirm:$false
        write-host $UserIdentity.identity completed successfully -ForegroundColor Green

    }catch{
    #Catch and notify admin of error
    $ErrorMessage = $_.Exception.Message

    write-host Failed Migrating $useridentity.sip with error $ErrorMessage

    }

}


function Move-toTeams{



    ##Adding Teams endpoint URL
    $url="https://admin0e.online.lync.com/HostedMigration/hostedmigrationService.svc"
    
    ##If credentials dont exist, prompt for them
    if(!($credentials)){

        $credentials = Get-Credential -Message "Please enter credentials for an Office 365 admin with onmicrosoft UPN"

    }

    move-toTeams-selectusers

}

Tasks in Microsoft Teams is live!

Earlier this year, Microsoft announced the release of Tasks in Teams. Tasks is essentially an update to the existing Microsoft Planner Teams app that adds a host of cool functionality to Teams. It brings together the regular “To-Do” and Planner contents for the user, and also the Planner tasks for the individual Teams that the user is a member of.

By now, pretty much all tenancies on standard release should have this enabled (it’s still rolling out for some) and it can be accessed using the normal “Planner” app in Teams – This will be renamed to tasks in the near future. When opening the “Planner” app, users will the the below banner at the top of the page letting them know they have been updated to “Tasks”.

No when users look in their app, they will see both their own Plans, To-Do lists and any tasks assigned to them in any Team Plans they are part of!

This makes it really easy to track tasks across multiple Teams and projects, surfacing what’s important for the user and helping to focus and prioritize on the tasks that matter!

It’s important to note that Tasks is not a new Office 365 app, rather a Teams app which pulls together the existing Planner and To-do apps in Office 365.

Transferring Teams Meetings Between Devices

When I’m working from home (which is pretty much all the time right now), my setup involves two laptops. I’ve got one high power laptop, that is essentially used as a Desktop and doesn’t move a lot, and another more lightweight Surface device that I use for email, calls and light work, including eventually returning to the office or customer sites.

One challenge I came across when working with this setup, is joining meetings from one device and then needing unexpectedly to share the screen of my other device. In this situation, mid-sentence, I need to find the meeting, open the meeting and join in order to share that screen.

Since the recent Teams update, now when I’m in this situation, I get the below banner informing me I’m in a meeting on another device and giving me the option to join, nice!

What’s even better, is when you choose to join, you can then decide to join on both devices (usually what I need to do) or to transfer the meeting seamlessly to the new device (Think transferring from a mobile device to laptop when you get back to your desk).

All in all, this is a small quality of life improvement to Microsoft Teams but another key feature that will definitely help make day to day use even easier.

Using Microsoft Teams as a Walkie Talkie for Frontline Workers

There are an amazing number of great apps available to integrate into Microsoft Teams. Some of these apps are published by Microsoft and many more are third part integrations ranging from handy productivity tools to line of business apps surfaced in a users Teams console. One cool app that is now available is the Teams ‘Walkie Talkie’ app. ‘Walkie Talkie’, essentially brings Push to Talk (PTT) functionality to Teams. Among the many use cases for this app, allowing Frontline Workers to communicate efficiently and quickly is a great application of Teams functionality and something that many third party vendors are currently providing.

Deploy Walkie Talkie

To deploy Walkie Talkie, we can create an App Setup Policy and deploy to the users we want the app available to. We add it into the pinned apps and deploy the policy to whoever needs it.

Given a little time to replicate, when our user logs in, they’ll see the app available in their App bar.

Using Walkie Talkie

Using Walkie Talkie is very easy. Simply open the Walkie Talkie app and select that Teams Channel we want to talk in.

Now when we hit ‘Connect’ we simply push the button to talk!

We can see how many other users are connected and also perform our other Teams tasks while remaining connected.

While this functionality is pretty straightforward, the value it provides is pretty impressive. I can definitely see this being used to replace a lot of legacy third party PTT systems.

Creating and Deploying Microsoft Teams Templates

Since its inception, Microsoft Teams has become a core part of the modern Microsoft 365 ecosystem. While it has been steadily gaining users naturally, the daily Teams user count has grown exponentially this year with many organizations being forced to adopt a work from home model. This has meant that a lot of IT departments have had to embrace cloud technology, usually at a quicker pace than initially planned.

At the center of this cloud adoption, is Microsoft Teams. What seems like the ultimate ‘Work from home’ tool, brings together the somewhat disparate Microsoft 365 apps and use cases into a single user interface. The heart of this is of course, the ‘Team’. In a Team, we can attach many apps and tabs to our various channels to help our users locate the functionality that they most need, when they need it. Teams for particular parts of the business can surface the relevant apps for that particular group of users and business function. For example a project Team would probably have a link to the project RAIID log associated with the project management channel.

That’s great, but do we need to set up these tabs, channels and apps every time we set up a new Team? Do we trust that our users will set their Teams up optimally? Also, if our users aren’t using Teams ‘right’, is that really their fault? Well, if Teams adoption suffers because users aren’t seeing the best Teams has to offer, that’s the problem of IT and Change Management.

To help provide users with some of the coolest features of Teams, without turning everyone into a ‘Super User’, Microsoft have recently released the Teams Template functionality. Teams Templates are excatly what they sound like, preconfigured Teams layouts, complete with apps and channels etc. that can be deployed from a list of Templates.

Creating a Teams Template

To create a Teams Template, we first open our Teams Admin Center, and navigate to the Teams – > Teams Templates section. From here we can see the massive amount of preconfigured Templates that Microsoft have made available to us out of the box. I recommend looking into the ‘Adopt Office 365’ template for deploying to your change champions.

The prebuilt templates are nice, but let’s create out own. Click ‘Add’ and we’ll select the option to create a new Template from scratch. We also have the option to modify and expand upon an existing Template, or even use an existing Team as a baseline for a Template.

We enter in some basic details and hit next to start building our Template.

Add in the Channels and Apps that the Teams should contain and when done, click ‘Submit’ to save the template. This template is now ready for deployment.

Deploying a Team from a Template

Now for the easy part. To deploy a Team from a Template as a user, simply create a Team as normal and select from the catalog of Templates available. Our custom Template is listed and when we add it, we see the newly created Teams gets created with all of our predefined settings. Don’t worry if the Channels and Apps aren’t there immediately, they can take some time to come through.

And that’s it, we’ve created and deployed a Template for Microsoft Teams, this functionality will no doubt help make Teams easier to use for our end users and really help showcase what it can do!