Category: Office 365

Exporting Microsoft Stream Transcript — Prettier Output and Error Handling

I had posted a one-liner to grab the text content of the Microsoft Stream transcript — there’s a good bit of cleanup required to make something professional looking, but I’ve been lazy about it & leave formatting up to the recipient. The one-liner approach fails when it doesn’t encounter a text element where it expects to find one. A more robust export approach creates a Node List containing all of the transcript-line classed elements, then iterates through that list and when the node has a textContent attribute appends that content to a running string value. Printing the running string value produces output that needs minimal reformatting.

Code:

var objTranscriptLines = window.document.querySelectorAll('.transcript-line');
var strRunningText = null;
for(var i = 0; i < objTranscriptLines.length; i++){
    if( objTranscriptLines[i].textContent ){
        var strLineText = objTranscriptLines[i].textContent;
        strRunningText = strRunningText + "\n" + strLineText.replace("Discard   Save","");
    }
}
console.log(strRunningText);

Results:

You *could* strip off the timestamps as well — instead of strLineText.replace(“Discard Save”,””) use (strLineText.replace(“Discard    Save”,””)).substr(8)

Did you know … you can list the members of your MS Team?

Without any special Administrative rights, you can list the members of the Azure AD groups that are used in MS Teams. If you don’t already have the AzureAD module installed, install it. In Windows, this is:

Install-Module -Name AzureAD

In Linux,you’ll need the preview of Azure AD:

# To run on Linux, you need the preview mode of AzureAD
Register-PackageSource -Trusted -ProviderName 'PowerShellGet' -Name 'Posh Test Gallery' -Location https://www.poshtestgallery.com/api/v2/
Install-Module -Name AzureAD.Standard.Preview
 

Connect to AzureAD. There is a separate command to list the group owners (Get-AzureADGroupOwner). I’ve always found the owner(s) in the member list as well, but it’s technically possible to have entries unique to the owner list.

Connect-AzureAD
Get-AzureADGroup -SearchString "Group Name Here" | Get-AzureADGroupOwner -All $True
Get-AzureADGroup -SearchString "Group Name Here" | Get-AzureADGroupMember -All $True

Redirect the output to a file if you wish to use the results elsewhere, or stash the returned member list in a variable and use Get-AzureADUser to get additional information for the user records.

$objMembers | ForEach-Object -Process {get-azureaduser -objectid $_.ObjectID}

Microsoft Teams – Background Images

Teams has had the ability to blur your background for a while – a nice way to obscure “stuff” written on the whiteboard behind your desk or hide the stack of papers and books on your desk. It isolates the foreground – hopefully you – and blurs out the background. You can now overlay the identified foreground with a background image. I currently see this feature in the desktop client – my Linux, mobile, and web clients do not have this feature.

When you are in a meeting and have your camera enabled, click on the ellipses in the meeting control bar and select “Show background effects”

Select one of the images – we’ll load custom images in a bit. Select one of the stock options and click “Apply”

Voila, you’ve been greenscreened over some stock image. One of the most useful cases I see for the background image is a call with vendors. Each individual selects their company logo as a background, and participants have a visual clue who is speaking. But that requires a custom image. Luckily, you can add custom images to the background selection.

Now that you’ve selected a stock image, you’ll have a folder on your computer that holds the image. Open %appdata\Microsoft\Teams\Backgrounds\Uploads

Copy in your custom png files

Repeat the process to select a background image in Teams, and you will see your custom image.

A small file can look blurry – a 1920×1080 image looks decent. My 150×120 little glif … not so great. Also notice that the image is inverted – a bunch of balloons or a sunny beach … works either way. My logo? I need to flip it horizontally or you see a backwards R

Note too – if you want to blur your background, that option has been moved into the background effects. It’s the upper right-hand background – right next to ‘no background image’.

When joining a scheduled meeting, you can adjust the background settings prior to beginning the call using what used to be the background blur slider.

Using ‘Meet now’, this slider does not appear. I voted for the UserVoice suggestion to have a default background setting that would apply to all video call types without one-off configuration for the meeting.

Microsoft Teams: End Meeting For All Attendees

Normally, I like that Teams meetings continue after the organizer drops off. It’s a little annoying, as a meeting organizer, to need to stick around just so everyone else can continue talking. But someone may encounter a scenario where they really want the meeting to end, and there wasn’t an easy way to accomplish this. Microsoft has introduced “end meeting” functionality.

Since we don’t use Microsoft’s PSTN dial-in, I’m not sure if that has per-minute accounting that would make someone a lot more concerned about meetings continuing. Honestly, this feature seems like it’s targeted more toward the Education sector – my classroom meeting shouldn’t become a student hang-out once I’m done. (And you can still hang up to disconnect and allow the meeting to continue)

To end a meeting, click the ellipsis in the meeting control bar. Select “End meeting”.

You’ll be asked to confirm that you really want to end the meeting. Click “End” and all participants are dropped.

 

Microsoft Teams – At Mentioning Shortcut For Multiple Individuals

I usually find myself at-mentioning the same handful of people in Teams channels – the managers, project leads, or SME’s. In a situation where I know everyone pretty well, that’s OK. A little time consuming as I get the three or four names typed in. And it’s not always obvious who the “go to” people in a Team should be. I find myself reading through a bunch of old posts just to figure out who is a good contact for a question.

Microsoft has introduced the idea of tagging individuals in Teams. These tags are defined within a Teams space – so the “managers” in Team XYZ aren’t the same “managers” from Team ABC. Tags both provide a shortcut – instead of typing the three individual manager’s names, I can at-mention managers – and a way of identifying people’s roles within the team – you can find the SMEs, Team Leads, or Tech Contacts just by looking at those tags.

How do you set up tags? You need to be a Team owner. Anyone can view the tags you set up, but creating tags is something only Team owners can do. Click on the ellipses next to the Team name and select “Manage tags”

Select “Create tag”

Give a name to your tag & start adding members

Tags aren’t objects that can be deleted – simply by removing all members from a tag, it disappears. So you’ll need to add someone here, even if that’s you. Click “Create” to create the tag.

You can also manage tags by managing the Team members – you’ll see a column for the tags, and moving your mouse into the tags column for an individual will display a little tag icon you can use to add tags to the individual.

If you enter a tag that does not exist, you can click the button to “Create …” the tag.

For existing tags, you can click the box to select the appropriate tags and select “Apply”

Now any team member can view the Team membership and see who is a project lead and who is an SME

Additionally, any Team member can at-mention these individuals by the tag. The display will indicate how many individuals are included in the tag – asking three people a question is probably reasonable, asking fifty may not be!

The at-mention will resolve as the tag name

Another cool feature — when I look at the members of a tag, I can start a chat with those people.

 

Excel – Including Current Date In String

Here’s a trick to include the current date in an Excel string — especially useful if you want to include the current date on a graph without having to actually type the current date each time. If you just include TODAY(), you get the integer representation. Wrap TODAY() in TEXT() and supply the formatting you want (“yyyy-mm-dd” in my example). Voila, a date like 2020-03-22 instead of 43912.

Office 365 Feature Scale-back

Microsoft is adjusting some non-core features to save capacity while the number of remote workers increased dramatically. This won’t impact core services (signing on, viewing/sending messages, uploading/downloading files), but don’t be concerned if you’re getting replies where the person seemingly didn’t type, presence updates seem slow, avatars aren’t showing up next to someone’s name (or yours in the upper right-hand corner of Teams), etc.

Adding member to MS Teams without admin rights or Graph API

# To run on Linux, you need the preview mode of AzureAD
# Register-PackageSource -Trusted -ProviderName ‘PowerShellGet’ -Name ‘Posh Test Gallery’ -Location https://www.poshtestgallery.com/api/v2/
# Install-Module -Name AzureAD.Standard.Preview

# Windows, the module is
# Install-Module -Name AzureAD

# I’m lazy and just typed my creds for a proof of concept; real implementation would use the SecureString thing in the connect-azuread. See:
# https://www.rushworth.us/lisa/?p=3294
connect-azuread

# Get the object ID for the group and the user
$objMyGroup = get-azureadgroup -SearchString “LJR Sandbox Team”
$objNewMember = get-azureaduser -searchstring “NewGuy”

# Add the user to the group
add-azureadgroupmember -ObjectID $objMyGroup.ObjectId -RefObjectID $objNewMember.ObjectId