MSEndpointMgr / ConfigMgr

Microsoft Endpoint Configuration Manager scripts and tools
637 stars 281 forks source link

Invoke-CMApplyDriverPackage.ps1 - UseDriverFallback only works in debug mode #42

Closed Jtracy-ItPro closed 5 years ago

Jtracy-ItPro commented 6 years ago

This script seems to be working find in a wipe & reload task sequence, with one exception.

I have made a driver fallback package for cases where there the model has no package yet. I made it with the ScConfigMgr tool. I can see that it is named right, distributed, and I have added driver files and updated the content.

But when the script looks for the package, it instead finds packages in our system like "Xerox Printer Drivers" and "Printer Drivers for Mobile Installations". It never finds the correct one.

The log file shows that it's looking for the right OS and architecture.

I checked line #722 and it all looks right - No idea how it's not picking up the package - unless the -match parameter is getting a bad regex?

Attempting to match a driver fallback package 1/1/1601 12:00:00 AM 0 (0x0000) Processing Printer Drivers for Mobile Installations 1/1/1601 12:00:00 AM 0 (0x0000) Either empty or an unsupported count of fallback package content detected 1/1/1601 12:00:00 AM 0 (0x0000)

Jtracy-ItPro commented 6 years ago

I looked into it some more. I think I didn't fully understand the problem. It's not the line where it tries to "match" the name.

When I run the script in Debug mode on a PC running Windows 10, it pulls all packages and cycles through until it finds a matching fallback package. Works perfectly.

When the script runs in the WinPE phase of a task sequence, this same code only pulls one package (I think). It's the wrong package, so it fails to match, but it doesn't look at any other packages. It kicks the error "empty of unsupported count of fallback package", and the log ends there.

Code checks if the "count" is 1. It looks like WinPE is only getting one package to check in fallback mode, instead of several like "real" win10 in debug mode.

I will try to hack this script so it's hardcoded to the package I actually want - I have to deliver this upgrade as a finished product today.

Jtracy-ItPro commented 6 years ago

oh... it runs different code in debug mode for that section. probably has nothing to do with WinPE

Jtracy-ItPro commented 6 years ago

OK, I guess this feature isn't ready, I'll just apply the fallback package to all PCs in a separate step.

Jtracy-ItPro commented 5 years ago

I have upgraded the software on the client and server side by now. It works this time.