(electronic whirring)
- Coming up, with the impending end of support
for Windows 7, if you still need help with
your Windows 7 to Windows 10 migration,
we're gonna walk through services for app remediation
and upgrade automation using FastTrack
to help get your environment to Windows 10,
whether you're fully on-premises or using the Cloud.
(funky electronic music)
So, I'm joined today by Aleks Lopez,
who leads the Desktop App Assure team
from FastTrack and Microsoft, welcome.
- Thanks for having me on the show, Jeremy.
- All right, so everyone knows that
the end of support for Windows 7
is this coming around the corner in January.
So if you're using Windows 7
and you haven't started planning
your deployment to Windows 10,
maybe you're concerned about the effort involved
and have been stalling,
it's really not too late,
and the good news is we can help.
- That's right, we have a couple of services
that we've developed in response to customer feedback.
So, we've talked with hundreds of customers
over the last couple of years,
and really, the main concern that keeps coming up
is application compatibility.
So, customers, especially those who experienced
the Windows XP to Windows 7 migrations,
they really think that their business-critical applications
aren't going to work.
And rest assured, the application experience on Windows 10
is much different than when it was
when we were moving to Windows 7.
The other common concern that comes up
is that customers think they have to have
all these cloud-connected services
in order to deploy Windows 10.
- Right.
- And that's not the true, either.
But those things together can make the deployment
seem really daunting.
- Right, and let's start though with app compatibility
because there's a lot that's changed there.
So why don't we talk about what's changed
and what we're seeing in terms of
all of our work that we've been doing
with these organizations
that have started deploying Windows 10.
- Yeah, I mean, the biggest thing, I always start with this,
is that Windows 10 and Office 365
have been built with compatibility in mind.
So, in the past, we've only had app compat signals
that told us that more than 99% of applications
that worked on Windows 7 also work on Windows 10.
But in the last year,
we've worked with hundreds of organizations
through this new service that we'll talk about
called Desktop App Assure,
and we've evaluated over 255,000 applications,
and found that only 402 of those
needed remediation assistance.
That's a 0.16%, it's really an incredibly low percentage
of compatibility failures.
- All right, so what about that tiny, tiny 0.16%
that actually do need some fixing?
- Well, that's the fear.
Even though 0.16% is a very small percentage,
if you have a business critical application in that 0.16%,
that can be incredibly stressful,
and really expensive for your organization to remediate.
So for that reason, we built Desktop App Assure.
App Assure is a no-cost service,
it's included as part of your license.
And what we do is,
we work directly with customers in a support-like model.
So we work to troubleshoot
and root cause an application issue,
and then determine how to fix it.
So, if it's an issue with Windows
or one of our products like Office,
we're committed to fixing those bugs
directly in the product itself,
or in our operating system.
In some cases, we actually find that
it's an issue in a third-party application,
so we reach out to that third-party vendor,
and we work directly with them to help them fix the app.
Or sometimes we find the issue's in
the customer's line of business application,
and so we partner with the customer to fix that as well.
If we have access to source code,
we might make recommendations on how to fix that code,
or in other cases, we apply one of the many mitigations
we have available to us.
- So is this service, then,
something that's available globally?
- Yes, so we're available in all time zones,
and we support 10 different languages,
so we can help a number of our customers around the world.
The big thing that we're trying to achieve here,
and our biggest goal,
is to make sure we leave you in a better state
after you've worked with our team.
So we wanna make sure that
we make our customers' apps future-proof,
make sure they're resilient to future Windows
and Office updates.
And then, wherever we can,
we want to make them more secure as well.
We don't want you to have to compromise
any security settings in your environment
to get an application to run.
- Okay, so if I found an issue then,
with maybe an app in my environment,
how would I engage?
- It's a great question.
So, many of you have maybe worked
with Microsoft Support before,
or with support in another organization,
so you may be used to creating a single ticket
for every problem you might have.
Our team's a little bit different.
So, basically, you submit a single request
for assistance through our portal,
and after that, we handle all that ticketing
on your behalf, essentially.
It doesn't matter how many months we work with you,
or how many application issues you might bring us,
we take care of that on the backend.
- So it's just one request?
- One single request.
So, let me show you what that looks like.
- [Jeremy] Okay.
- [Aleks] So, if you're trying to access our portal
to submit a request for assistance,
you just go to aka.ms/desktopappassurerequest
And then I'll show you what that process looks like.
- [Jeremy] Okay.
- [Aleks] The login process is through
Azure Active Directory.
And so, once you come in,
it's really a three-step process from there.
So, the first page takes you through
our service description that helps you understand
what's in and out of scope,
and the qualification criteria.
And then we ask some basic information
about your company.
We wanna understand who
the primary contact is at the organization
in case it's not the person submitting the request.
And then would like to understand
some of the things around
the number of devices that you have,
the number of applications,
the number needing assistance,
and then a brief summary of the problem that you have.
And then once you hit submit here,
it'll take you to this confirmation page.
At this point is when our team has received
this request for assistance,
and we'll reach out to the requester
within 24 business hours.
Now, I mentioned earlier that you don't have to have
a bunch of cloud-connected services
in order to deploy Windows 10.
But then I said that you needed Azure Active Directory
in order to log into this portal.
So, if you don't yet have Azure AD
set up in your environment, that's no problem.
Please just email my team at achelp@microsoft.com
and we'll help you get started.
- All right, so let me focus on the work
that your team's doing in terms of application compatibility
for that tiny 0.16% of apps that might be affected,
then how does your team actually step in
and start working with customers that contact you?
- Yeah, the first line of defense
is actually always a quick online search.
So, what we often find is that there may already be
a known fix available for a particular issue,
especially if it's a third-party application.
And the customer just needs to install that
to fix the issue.
Or maybe there's an upgraded app available
that's supported on Windows 10.
This actually happened quite frequently in our program
that we had Chris Jackson write a blog about this topic
to help our customers out.
- Right, so, can you then walk us through a case
of maybe a line of business app that comes in
that didn't have information online,
I've tried to search it via Google or via Bing,
and you actually have to build a fix for it.
What is that process look like?
- Yeah, so I mentioned that
Windows 10 has been built for compatibility,
and one of the ways we do that, really,
is by having a compat infrastructure directly in Windows.
So let me actually walk through
and show you what that looks like.
What you're looking at
is something called Compatibility Administrator,
and Compat Admin is part of the app compatibility tools
that's part of the Windows Assessment
and Deployment Tool kit. - Right.
- And the way to really think about this
is a set of pre-built application fixes
for the most common issues that we see around compatibility.
And then in many cases,
you can actually see 6,000, almost 6,000 here,
we actually target those Compatibility Fixes
to some known applications that we have in the ecosystem.
And so, I'll show you an example of that here, using 3DMark.
So, here you can see 3DMark is an application vendor,
and then you see a number of EXEs
which represent applications for this vendor.
We've targeted it with a number of Compatibility Fixes,
and then also have these matching files
that essentially tell us which specific EXE
to target that fix to.
Now, if I actually collapse the folder here,
or the directory,
you'll also be able to see
that we have a directory for Compatibility Fixes
and Compatibility Modes.
Now, Compatibility Fixes are essentially
fixes for specific compatibility problems,
and we end up grouping some of those that are common
into these Compatibility Modes for specific scenarios.
There are over 400 Compatibility Fixes,
and 100 Compatibility Modes in Compat Admin.
- Okay.
- Okay, so now I'm gonna cut over to
this real-life example from one of our customers.
In this particular case,
our customer had an application that was built for XP,
and it was driving a peripheral
that was attached to a phone system.
And so, when I launch this,
you'll actually see the issue that's occurring.
First, the app's actually gonna try to access
a backend database, that we don't have it on this device.
So I'm gonna click through this prompt here.
And then you'll see the issue that's occurring here,
which is the minimize and maximize buttons are missing.
And then, when I actually try to close this application,
there's a delay and it won't close,
and then I get a prompt to force close the app.
- [Jeremy] Basically, crashing then on close,
which isn't a good thing.
- That's right, it's a super painful experience.
So, before I actually get into how we actually fix this,
I wanna show you something else
that's really important here.
So, I'm going to click into the directory,
and you can see that the directory includes
a Runtimes folder or directory,
with three installers that have to
actually be installed in a very specific order
in order for this application to run,
which is not a great experience.
So, our team helped with this issue as well,
and I'll cover off on that a little bit later.
So now, one thing we tell our customers to do
before they spend countless hours, or even weeks,
troubleshooting an issue
is to try some of these built-in Compatibility Modes.
And the way you pick a Compatibility Mode
is you actually go back to when
the application was actually developed,
and pick that Compat Mode.
- [Jeremy] Right.
- So, in this case, this application was built for XP.
Our team actually did try to see
if the Windows 7 Compat Mode would work for this app,
but it didn't.
So, I'll show you what ended up doing that did work.
So, if I go back into the Compat Admin tool,
you can see here that we've created this custom SDB file,
and targeted the Windows XP Sp3 Compat Mode
to this particular EXE.
Now, you actually take one more step,
and you'll install this SDB,
and then this will show up here
in the Installed Database section.
And now, this should actually work.
So, we're gonna go back out and see what this actually did
to the particular application that we had.
- [Jeremy] Okay.
- We're gonna launch this app again.
So, now you'll see the database error occur again,
well, we'll ignore that.
And then you can see that the minimize and maximize button
have actually come up here correctly,
and we'll be able to close it as well.
Now, I mentioned earlier
that the application actually had three installers,
which is not the greatest experience on installation,
and so, what we did for this customer was
we actually created a custom MSI file
to improve that deployment experience.
So, I'm gonna open that here,
and show you what that looks like.
I'm going to actually load it in Orca.
And you can see here
that we've actually packaged each of the installers,
along with a shim that we applied,
and then we wrote instructions to make sure
that all of that was executed in the correct order.
So, now the customer can just take one single MSI,
deploy it through their preferred management tool,
in this case, it was ConfigMan,
and then, it's one step versus four separate steps
that they would have had to take before.
- All right, so it's a super good time saver
to try out a Compatibility Mode,
you can do that by right-clicking on an app as well
to try it out.
And you also repackaged, in that case, the MSI
to make it super handy for anybody using
a software distribution tool, like SCCM
to get that package out.
But, I wanna do something a little bit harder,
'cause we saw a Compatibility Mode,
that's a fairly easy fix.
- [Aleks] Yeah.
- Why don't you show us something
that was a bit more difficult to fix.
- Yeah, for sure.
So, this is an application that wasn't fixed
via simple Compatibility Mode.
So, after we verified that
the application didn't actually work,
we used something called Time Travel Tracer.
Now, Time Travel Tracer is actually shipped
with Windows SDK, so what TTTracer does
is that it captures event logs from an application,
and so you can trace those events
all the way through a failure
and analyze them later in a debugging tool.
- [Jeremy] Right.
- So, what I'm actually going to do here
is run Time Travel Tracer against our specific application,
which is ContosoTextStudio,
and I'll enter the executable name here.
And one thing that happens is that Time Travel Tracer,
because it's capturing all the logs,
it's actually going to slow down the application somewhat.
So, you'll see it'll take a few seconds
to actually load the application in the background.
There it is, I'll bring it forward,
and then I'm gonna try to actually execute the function
that we want, which is MacroEditor,
and you get this less than helpful error.
So, now we have an export file
that we can import into a debugger.
So, I'm gonna use WinDbg, or that's what the team use,
which is a common debugging tool
that many people are familiar with.
And I'll bring that up here.
Now, the team, first thing they have to do
is actually go to the exception that they find,
and then backtrack from there to a root cause.
So, in this case, you'll see here
that .NET is loading a COM object
that's trying to delay load a library.
CONTOSOTEXTLIBRARY tailmerge icuuc dll.
- [Jeremy] It's kind of like your first clue now,
in this case. - That's right, exactly.
So we kind of have an idea
that there's something wrong with this particular file.
And then, the team had to find out the function
that's being imported from the module.
And in this case, our function is called ContosoAPI,
it's this really ugly name, it's called the decorated name.
There's another name for it, which is mangled name,
and I think that's a lot more appropriate.
Then we listed out and searched the functions
in the export tables,
but I'll skip that part for now.
Finally, after a little investigation,
we identified for sure that the issue
was with ICUUC library in System32,
and we'll talk about that a little bit later.
Now, this is a library developed for
International Components for Unicode software.
It turns out the file that is shipped with Windows 10
is actually different from the file
that was shipped back with XP.
- 'Cause it's probably, like, 20 years newer.
- Exactly. - Yeah.
- So, the application is actually looking
for something in the file that was shipped with XP
that's no longer available in the Windows 10 file.
- Got it.
- So, the fix for that is actually pretty easy.
We tracked down the older version of the file,
and I actually have it already copied here
to the directory EXE for the app,
and I'm gonna rename it here
so the application can actually call it correctly.
And then I'm going to launch the application,
and you can see the function executes correctly.
So, like the previous example,
we just packaged this application up
and shipped it back to our customer
and they verified that it works correctly.
- So, you really outdid yourself
in terms of the first one to this one.
This was a harder fix,
obviously you can tell that your team
obviously knows what they're doing.
And it really covers the concerns
that I think a lot of people have
in terms of application compatibility.
'Cause even though it's only 0.16%,
you might run into an issue like this, for example,
and your team can really help,
and these are really great examples
of how you have already helped
in terms of unblocking deployment.
But, what else are you hearing
in terms of deployment blockers
for people that want to move to Windows 10.
- So Microsoft has done a lot of work
connecting Windows and Office to cloud services,
but to a lot of people,
it might sound like that's the only way you can deploy.
If you're concerned about moving to the cloud
or attaching your endpoints to cloud services,
my guidance to you is to start from where you are.
If you're not ready to adopt Cloud technologies,
like Intune, Azure AD or Office 365,
before your Windows 10 deployment,
you don't need to.
- Right, and this is something you can always do that later.
And you can still upgrade completely on premises
using the tools that you have.
You might be using Configuration Manager,
and that said, not everybody has done a major OS deployment,
so if you need help,
is there anything that your team can do
at FastTrack then to help? - For sure.
So, beyond the help we offer
with Desktop App Assure through FastTrack,
we also launched a FastTrack service
that helps you upgrade to Windows 10 using SCCM.
If you use SCCM now for software update management,
the service shows you how you can get your deployment set up
using in-place upgrade task sequences.
And it helps you to automate as much as possible.
If you are used to reimaging PCs
as part of your OS deployment,
you can can feel good about automating in-place upgrades
at scale using Configuration Manager.
And a lot of organizations have used this
for thousands of PCs.
A good example is Hendrick Automotive Group,
where they used in-place upgrade
for their network of car dealerships
across the southeast U.S.
Really now, in-place upgrade is the fastest way
to move existing machines from Windows 7 to Windows 10.
You don't need to worry about migrating user state
or installing matching apps.
- Right, this was great advice.
Thanks Aleks, and great tips.
It's also great to see the work that your team's done,
in this case, in the real expertise
that's behind the service.
Now, where can people that are watching this
learn more and start engaging?
- Great question.
So, we walked through the FastTrack portal earlier,
and you can access information about Desktop App Assure
at aka.ms/DesktopAppAssureRequest
Or, if you'd like to learn about
the Windows 10 deployment program,
you can go to the FastTrack portal.
The big thing that's super important to understand here
is that these services are really just in place
to help our customers move to Windows 10,
and to deploy Office ProPlus.
We're not here to upsell you anything,
we're not, there's no catches,
we're really just here to help.
- Great tips, and thanks again for joining us today, Aleks.
Of course, keep watching Microsoft Mechanics,
hit subscribe if you haven't already,
and we'll see you next time.
(funky electronic music)