(upbeat electronic music)
(audience applauds)
- [Jeremy] Hello everyone and welcome
to Microsoft Mechanics Live.
If you've ever wondered what connects all
the different Office app experiences together,
we're going to look at the built-in AI,
the general configurations,
and the settings that span Office 365
with the Microsoft Graph.
We're going to demystify it for you
in the next 15 minutes, and to do that we're actually joined
by Mr. Powershell himself, Jeffrey Snover,
in his new role looking after the Microsoft Graph
and its Substrate.
Give him a warm welcome everybody.
(audience applause) - Thanks, it's great
to be back, great to be back.
- [Jeremy] All right, so Jeffrey, when I think about
the Microsoft 365 kind of a graph and Substrate,
it always seems like it's kind of not real, it's marketing,
it's got kind of a different flavor to it.
Can you make this real for us?
- [Jeffery] Yeah, absolutely.
You know, it's no mythical unicorns,
no rainbows, no leprechauns.
This is just pure technology,
in fact, what I'm going to show you
is a few examples of AI and of the graph
and show you how to connect those dots together.
And also show you how to use it as an admin.
So first, let me open Office.com.
So this is Office.com and it's showing you my most
recently used files that I've accessed.
Okay, great that's the MRU, we've all seen that.
But then, this is where the AI starts to kick in, Discover.
So, you know how an amazing amount of work happens when
you go get a cup of coffee or drink of water
and you run into somebody in the hallway and you're like,
oh, hey what are you working on?
- [Jeremy] It happens every day.
- [Jeffrey] And then he's like, "Oh, well you should
"talk to this person or follow up on that."
- Right, right. - Well, this is what I like
to call the virtual water cooler feature.
Because what it does is it takes a look at me and who
my collaborators are and what they've been working on
and what's most important and what's trending most
and then it brings it to me.
So, here I can see Alex has been very busy.
He's been working this product overview
on the product pitch.
Lynne's been working this marketing analysis,
and so it shows me everything,
it's the virtual water cooler.
And then I can hover over Alex cause it showed me
who he is and what he's been working on,
and I can click and see the people card.
I'm in love with the people card.
I just love this thing.
Tells me everything about Alex,
gives me his contact information,
shows me all the files that he's recently
been working on that I have access to.
If he's ACLed it so I don't see it, I don't see it.
I can see emails that I've had from them,
but then I can also see their organization,
so I can see what things his coworkers have been working on,
I can navigate to his boss,
and I can send her an email telling her what a great job
I thought Alex did on that recent document.
So amazing stuff.
Now I'll open up PowerPoint.
- All right, he can comes-- - This gets fun.
- Into the actual rich clients as well, right?
- Exactly, who'd expected to see Jeffrey Snover
demoing PowerPoint?
Okay, so I'm gonna start, right?
I'm gonna start a new thing. - It's got Power in the title,
so it kind of works? - It does, so close.
So of course what I'm gonna do is
I'm gonna start a new outline, a new deck,
and I'm gonna talk about, what?
My favorite topic, PowerShell.
Now what it does is it goes out into the Internet
and finds information.
Hey, which of these were you interested in?
Well, it was PowerShell, analyzes all the semantics
around that it knows about it in the public knowledge base
and says here's a topic set that you could talk about.
So I'll select all but those two,
but now what it's doing is it's generating
a slide deck for me.
I pick an outline, template, and look here,
tells me information about it, licensing type,
here's some additional topics to research,
there's this guy Jeffrey Snover,
apparently involved in it, and it gives me a structure.
Okay, now, that's great,
except turns out I've done some talks
about PowerShell in the past,
so now what I can do is reuse slides.
Reuse slides will now search across all things
that I've done in the past, my OneDrive, my Sharepoint,
et cetera, everything that I have access to,
I'll search for PowerShell,
I'll take a look down, oh yeah, look,
that was a great talk, I'll choose some slides from it.
I'll come in here and pick that story,
and boom, grab slides from things.
So it facilitates a very natural flow of work.
- Awesome, awesome stuff.
So they saw a number of things that were happening there
in terms of Office being able to easily present you
everything you've been working on
with the Most Recently Used list,
take inputs of content that you have access to,
these are only things that you can
and have permissions to see.
The people that you most commonly work with,
the popularity of the files themselves,
and also these dynamic content recommendations,
so pretty cool stuff.
- Yeah, yeah, yeah, but wait, wait,
it gets better, let me just blow your mind here.
Okay, so let me show you an experience
that I've had a lot since I changed organizations, okay?
So here I'll navigate to a website,
and it'll be talking about some project
that I know absolutely nothing about.
I mean, this is how I spent the last four months.
What, what, what, just learn mode, right?
So here it's talking about Project Saturn.
I know nothing about Project Saturn,
but notice now, using the new Cortex project,
Saturn is now highlighted, and when I click on it,
or hover over it, I get a topic card.
So this topic card has an AI generated description
about the project, it shows the people
associated with that project and a couple resources,
and if I want more detail, I'll click on the title,
it'll take me to a page for that topic, Saturn.
Again, here it gives me more people,
and a full list of documents associated
with the Saturn Project.
- So really, really cool stuff,
and just to put this into context,
this is actually completely machine-generated pages,
all of the relationships there,
all of the text that you see there,
all of it was machine generated from the graph
and all of the AI effectively in Office.
- Exactly, and that is the point.
There is no admin who got there and said, you know,
New Project, Saturn, here's the description of Saturn,
that's not how it works.
Artificial intelligence, an artificial intelligence agent
went and looked at all the documents,
all the interactions, understands how people talk about
projects, and it determined that this was a project
and put together all the resources and tied them together
to produce this experience.
And so this highlights, I love this project,
because it highlights Microsoft's unique approach
to artificial intelligence.
What we do is we take Microsoft AI,
we combine it with the Microsoft Graph
and the Office Substrate,
and we use AI to help you become more productive
with your goals.
- Alright, so now we've seen it in action,
I think probably everybody wants to know,
underneath, under the hood, how does all this stuff
actually work, what can you do with it,
and what are the ways that you can actually explore it?
- Yeah, right?
Well, I've recently moved here from Windows and Azure,
and it was in those organizations
I'd hear about those things,
but honestly I never really understood
what you were talking about.
It sort of felt more like a marketing thing
than a technology thing.
So then when I transferred over,
I started doing some deep drillings.
You know, what you are talking about,
how's that work, whatever.
And then all of a sudden it made a lot of sense, right?
And in particular, when I viewed it
from an operating system perspective,
everything became super clear and obvious.
- Right, because you were indeed
the chief architect of Windows Server.
Just the good ones, though, right?
- Good versions, yes, that's right.
Okay, so let's walk through Office 365
from an operating system perspective,
and I think you'll see how clear it is.
So what we did was we took the Office applications
and we refactored them to work together in the cloud, right?
And as we refactored them,
we refactored them so that we could deliver
a common set of customer promises
around available, durability, privacy, and security.
And in that process, in that process,
what we ended up building was a planetary-scale
People Operating System.
A People Operating System, okay?
That's the heart of Office 365.
The heart of it is the Substrate, so let's start there.
The Substrate, Substrate is a set of storage,
and a set of services.
These services are for creating,
collaborating, and communicating.
Everything, everything gets stored in the Substrate,
or has a digital twin in the Substrate.
This includes all your emails, all your files,
all your chats, all your calendar items, et cetera.
Then the Microsoft Graph is a public REST API
to the data in Microsoft 365.
That extends beyond Office 365 to include services,
like Azure Active Directory, Intune for policy delivery,
and it connects to Windows and more.
It also layers in insights,
artificial intelligence insights,
and connects the dots between the elements in the graph.
Okay, so it builds this comprehensive
and intelligent interface to all the people
and organization and the things that tie them together.
The graph is of course a REST API,
and so it works with all the popular languages,
runtimes, and scripting tools,
including the king of them all, my favorite, PowerShell.
- Okay, so this explains what the graph
and the Substrate do, but how do they actually work?
- Okay, let's go back to my operating system analogy,
'cause I think that'd make things super clear.
We'll walk through it from an operating system
perspective lens, and I'll then show you how that maps
for a Windows operating system
maps to a People Operating System, AKA Office 365.
So using Windows as an example,
look, an operating system, pretty simple beast,
does three things.
Number one, it manages and protect resources.
So what are the resources of a device?
There's CPU, memory, hard drive, how do you protect 'em?
Windows Defender.
Number two is it helps developers write
consistent applications.
How does it do that?
With a set of services, like job scheduler,
with a set of APIs, think Win32,
and a set of common controls,
think file and print dialog boxes.
And the third thing an operating system does
is it provides a set of base applications,
and a mechanism, a store,
to get additional first and third party applications.
So think the shell, the browser,
and then third-party apps that you can get
from the Microsoft Store.
So with that simple focus in mind,
right, operating system does three things?
Let's take a look at Office 365,
our People Operating System.
So instead of focusing on devices, we focus in on resources.
So what does it do?
It manages the resources, like users, documents, messages,
calendars, and then it protects those people resources
with things like information protection, and Office ATP.
Next is it provides developer services.
It provides things like chat, calling, email, search,
and a new set of intelligent services,
like semantic search, knowledge management.
It has common APIs, just as we had Win32,
we have Microsoft Graph, our public API,
and we have a common set of controls.
The people card, the file card, the topic card.
And then last, the third layer
is it provides a set of applications.
Think Word, Teams, Outlook, and it provides Office Store
to get additional first and third party applications.
- Great, so practically speaking,
let's go to the Microsoft Graph.
How did developers actually take advantage of that?
- Yeah, so the best way for everybody to do that
is to start using the Graph Explorer.
Now, the best way to get to the Graph Explorer
is aka.ms/GE, Graph Explorer, GE, okay?
This is the Graph Explorer.
Now, to use this public website,
you do not need an account.
You can log in to your account if you want to,
but you don't need to.
Here I'm logged in as Megan Bowen,
and here it shows a set of queries,
I can get my profile, here's Megan's photo,
she's a handsome fella there.
Anyway, so here's a set of sample queries,
and what it does is shows you this is a GET,
and the URL, and here's what you get.
So this sample then shows you how to get information
about users, about groups, about mail, calendar,
OneDrive, it has applications like Excel,
Planner, Insights, SharePoint, does batching.
Now, this REST API has Gets like PowerShell, lot of Gets,
but it also has a set of patches, which are like updates,
DELETE which is like your PowerShell remove,
and then POST, which is like a SET, okay?
So it does a full range of capabilities here.
- Alright, so why don't you show us,
we talked about Discover before
and kind of some of the insights and AI that we can get
when we go to Office.com, is that here as well?
- Right, right, remember in the beginning,
I said Discover, and it showed me all the things
that were trending around me?
Well right here, items trending around me,
and here's the URL, graph, me/insights/trending,
and here it shows you all the things
that are trending around Megan.
- It's a nice machine-generated view
of all the different things that you get,
but you can make that cleaner than that, I think.
- You can! - Using other tools, right?
- Like PowerShell. - Exactly, like PowerShell.
So looking at the commands,
this looks suspiciously like PowerShell in some ways,
where you can scope the commands,
drill into specific enumerations of things,
but where does PowerShell actually fit into this?
- Yeah, of course you can use PowerShell here.
You know, really PowerShell was
the original management surface,
the control plane for Microsoft 365.
So we've always had commandlets for the Office stuff,
and as we went to M365 we had them too,
but one of the challenges that we've had
is because we innovate so quickly,
keeping those in-sync with the innovations,
with the public APIs has been a challenge.
So here at Ignite 2019,
we're announcing a new set of commandlets,
these are under preview, and this marks a new approach
to PowerShell for MS Graph,
and these PowerShell commandlets
are based upon auto-generation, okay?
So Azure has had auto-generation tools
to generate their SDKs from REST APIs
for quite some time now,
and they recently extended that tool
to auto-generate PowerShell commandlets as well.
So this allows us to keep up to date,
as we update the graph we can auto-generate new APIs.
It also ensures complete consistency of the commandlets.
So, let's show an example of that.
This is showing the new wonderful Windows Terminals,
so if you see that nice background--
- [Jeremy] Definitely download this
if you haven't yet, this is awesome.
- [Jeffrey] It is, it's fantastic.
So what I'll do is I'll Get-Module
for the Microsoft.Graph.Beta,
and you'll see quite a long list here.
Notice that these modules all work
with PowerShell Edition's Core or Desktop,
so they'll work in either edition.
I'm actually demoing this using PowerShell core.
Okay, so lots of modules,
but how many commands are there?
So I'll get all the commands,
and there are almost 2400 commandlets,
and we're not done yet,
we're still generating some additional commandlets here.
Now what I'll do is I'll connect to the graph,
when you connect to the graph you specify
the permissions that you want.
So I've now connected to the graph.
And now what I can do is things like Get-Group.
When I Get-Group, I get objects, right?
So I can do all my PowerShell wonderfulness to it.
I can sort them by display name,
and then format a table using wildcarding.
So I get the display name, visibility,
group types, and description.
All the PowerShell wonderfulness.
Now here's a little bit of magic.
I'm not gonna describe it in great detail,
but it's on the screen,
so you can follow up afterwards.
The beginning, I get a set of users,
in the end, I format them as a table
using display name, the ID, and phone numbers.
And in the middle there's a little bit of magic.
What's actually happening is that Microsoft Graph
uses IDs often, okay?
And let me show you what an ID looks like.
That's what an ID looks like.
So you gotta remember that number?
Not so much, you gotta type that in?
Not so much.
This little piece of magic here is a for loop,
it creates a hash table and adds each one of these IDs
to the hash table indexed by the display name, okay?
And so what that allows us to do
is this little piece of magic.
So I Get-UserInsightTrending,
those are the items trending around a user.
It wants a UserID, and so I say $id,
that's the hash table, and then I give the name
of the person.
It'll index into that hash table,
find her ID, and substitute it here,
and I format it as a table,
and these were the items that were trending around Megan.
- [Jeremy] Except now it's much more readable
than what we saw in the web, right?
- [Jeffrey] Exactly, exactly.
So PowerShell leveraging the graph, leveraging AI,
all the pieces connect together
in a very nice, harmonious loop for you.
- Very cool, so thank you so much,
I hope this helped demystify a lot of the functions
for the Microsoft Graph and Substrate.
Now if I wanted to go deeper into this,
and really learn a lot more, what would you recommend?
- Yeah, so there's a great developer series at aka.ms/Graph,
and you can go to the aka.ms/GraphExplorer
to see what you can do as well.
And of course, if you haven't already,
start learning PowerShell.
We've just released PowerShell Preview Version 7,
Preview 5 I believe, that's available now,
and if you're a Linux user and haven't started,
you're really missing out.
This is really taking off.
The Linux adoption of PowerShell Core has been fantastic.
So we started off in June of 2017 at zero,
and now we have over 10 million starts a month
with PowerShell Core.
- Amazing updates, great tips Jeffrey,
and of course, keep watching Microsoft Mechanics
for all the latest updates.
Hit Subscribe if you haven't already.
That's all the time we have for this show,
thanks for watching, we'll see you next time.
(audience applauds)
(upbeat electronic music)