Edit:
02.12.2019:
- Uploaded the files for 1909 PreCheck
- Added the language code check in the PreCheck script similar to the upgrade script
11.08.2020:
- Uploaded the files for 2004 PreCheck
07.10.2021:
- Uploaded the files for Windows 11 2009 PreCheck
- Modified Verify section to check for CurrentBuild and not ReleaseID anymore because Windows 10 21H1 and Windows 11 have the same build number
- Log displays for example, that a TPM module is missing:
Hello Community,
I would like to start a mini series for all of you who are
also facing a Windows 10 inplace upgrade strategy. As an example, I will use
the current 1903 build upgrade. This series will contain 3 blog post which will
contain
1.) a precheck to detect upgrade issues or blocker in
advance
2.) the preseeding of the binaries so that clients outside your network will smoothly download the gigabytes
https://www.itninja.com/blog/view/kace-sma-windows-10-preseeding-large-files
3.) the upgrade itself
https://www.itninja.com/blog/view/kace-sma-windows-10-inplace-upgrade
But first I will thank my former colleague and friend chrpetri. He did the development work at this scripts and helped me with testing all the functionality.
Today I want to start with part 1 the “Precheck”. The other
posts will be published soon, and I will reference to them here.
This precheck-script is used for Windows 10 inplace upgrades,
similar to a detection schedule in our Patch Management.
The prerequisite for this is that an unpacked Windows 10 ISO is available on a network share. Alternatively, the unpacked ISO can also be copied to the local clients. You can do it for example with the file synchronization functionality of our SMA.
Here you can download the exported script as well as the report and the custom inventory rule.
This script can be executed silently in the background on
the clients. This allows you to scan the clients in advance of a build upgrade and
see where you might need to take action to update software or drivers on your
endpoints.
After importing the script into your SMA you will find three dependencies.
The first is a 7-ZIP EXE to pack the log files and upload them to
the SMA as the script progresses.
Furthermore, there is the "PreCheckWinX.cmd". This
file is responsible for executing the setup.exe in the unpacked Windows 10 ISO.
In addition, two variables are queried which are important in the further
course of the script. The first variable is the path to the unpacked Windows 10
ISO. The second variable is the path to the log files, which is already given.
The third file is "WindowsSetupLogParser.vbs".
This file is used to search the collected logs of the PreCheck for certain
keywords. At the end a file is created, which shows us clearly where there may
be errors.
Various tasks are performed in the script itself.
Among
other things, it is checked whether the system has a lower Windows 10 Built
version than 1903 in order to be eligible for an upgrade at all.
The log paths are then created, into which the logs from the
PreCheck are stored.
In the third task the CMD file mentioned above is executed.
Note: Here you have to specify the path to your unzipped
Windows 10 ISO file. In my script this is "\\192.168.50.1\install$\WinX1903\.
Authenticated users should have read permissions on this path. The second path
is the log path, and this does not need to be changed.
In the last task, the collected log files are packed with
7-ZIP and then uploaded to the SMA so that the log files can be accessed at any
time from the SMA. In addition, the "WindowsSetupLogParser.vbs" is
executed, which creates the file "WinSetupResults.log" at the end. We
read this file with the imported Custom Inventory Rule so that the content is
also available in the SMA.
As soon as the data is available in the SMA, a report can also
be generated, which gives us a quick and easy overview of which scanned clients
would successfully install the inplace upgrade or where there might still be
problems.
Note: The ID of the Custom Inventory Rule is stored in
the report, which is probably different for you. If so you have to change the
report as follows.
First you must copy the ID. Navigate to "Inventory / Software" and click on "Inventory: Windows Setup Precheck Log". Now click into the address bar of your browser and copy out the ID. It is important that you open your SMA with https://SMA/adminui, otherwise you won't see the complete address line in your browser.
The query must then be adjusted in the "Windows Setup Precheck Log Parser Results" report. Navigate to "Reporting" and search for "Windows Setup Precheck Log Parser Results". After a click on the report, you will see the SQL Query. There you have to paste the previously copied ID.
The following is an example of the report:
In the following two examples how the WinSetupResult.log file
can look like.
::MATCH: C:\WinX1903\PreCheck\Panther\CompatData_2019_04_25_12_27_19_3_006f0018.xml
[DriverPackage]
- Inf: oem44.inf
- BlockMigration: True
- HasSignedBinaries: False
[DriverPackage]
- Inf: oem43.inf
- BlockMigration: True
- HasSignedBinaries: False
Note: With
such file contents, you need to navigate to "C:\Windows\INF" to see
which drivers might block an upgrade. In this example it is the "Microsoft
Windows XPS Document Writer" and the "Microsoft Windows Print to
PDF" driver which would not block the inplace upgrade.
::MATCH:
C:\WinX1903\PreCheck\Panther\CompatData_2019_04_26_13_25_01_3_006f0018.xml
[HardwareItem]
- HardwareType: Generic
[CompatibilityInfo]
- BlockingType: Hard
- Message: Your PC has hardware that is not
yet ready for this version of Windows 10. No action is required. This version
of Windows 10 is automatically offered by Windows Update once the problem is
resolved.
- Title: This PC cannot be upgraded to
Windows 10.
[DriverPackage]
- Inf: oem1.inf
- BlockMigration: True
- HasSignedBinaries: False
[DriverPackage]
- Inf: oem0.inf
- BlockMigration: True
- HasSignedBinaries: False
::MATCH: C:\WinX1903\PreCheck\Panther\CompatData_2019_04_26_13_25_01_3_006f0018.xml
[HardwareItem]
- HardwareType: Generic
[CompatibilityInfo]
- BlockingType: Hard
- Message: Your PC has hardware that is not
yet ready for this version of Windows 10. No action is required. This version
of Windows 10 is automatically offered by Windows Update once the problem is
resolved.
- Title: This PC cannot be upgraded to
Windows 10.
[DriverPackage]
- Inf: oem1.inf
- BlockMigration: True
- HasSignedBinaries: False
[DriverPackage]
- Inf: oem0.inf
- BlockMigration: True
- HasSignedBinaries: False
There are several hardware drivers installed that are not compatible with the 1903 build, and these would need to be updated before the upgrade can be performed. However, this evaluation may also include applications that might block the upgrade. Usually antivirus programs are detected that should be updated first before the inplace upgrade is performed.
I'm looking to create a windows 10 inplace upgrade precheck like yours.
But I do not know how you did it all this.
Can you explain me more about
"After importing the script into your SMA you will find three dependencies."?
How do you import the scripts that you have posted? Do I have to make a new script in KACE SMA?
Can you give me (if you want) a procedure how you did this? I have tried, but I think I do something wrong.
I'm looking forward on your response.
Thank you!
Rachid - Rachid 5 years ago
here you have a how to for the import.
https://support.quest.com/kace-systems-management-appliance/kb/116949/how-to-import-and-export-resources
The samba share for the SMA is \\YOURSMA\clientdrop. You must copy my files to this share and then you can import it in your SMA.
Hope that helps you.
Sven - sven.hain 5 years ago
Thanks for the explanation!
Kind Regards,
Rachid - Rachid 5 years ago
we talked last week about my issues deploying or upgrading 1903 on my envirement. please post your last step
3.) the upgrade itself :-)
my big issue is that 50-60% of my Systems (most of that 64bit and 32bit 1809) are starting the upgrade quiet but not installing or finishing it.
They stop the installation after 1hour. I look for log files but there is nothing i handle with it.
some of my systems are upgrading very well but over 60%not. Do you have detail information or what you need from me to help ? - Bilo111 5 years ago
sorry for the delay, but here is the link to the last script :)
https://www.itninja.com/blog/view/kace-sma-windows-10-inplace-upgrade
I hope that helps you. Otherwise please send me an email, if you have problems. - sven.hain 5 years ago
we have implemented a new method to download our files. Only customers with an active maintenance on one of our KACE products can download files.
If you are in your settings of your ITNinja profile, you need to validate your "Customer Support Validation" EMail address.
If you have valid maintenance, then you must accept the terms and conditions field. You must scroll down in this field and at the bottom you have a checkbox to accept it.
Hope that helps you to download my packages.
Have a nice day. - sven.hain 5 years ago
Is there a way to define some variable for usin gany image of win 10 (1803 or 1909) without editing your file? - bleclerc 4 years ago
you can not use a variable in the script but there is another easy way to change the built numbers.
If you are in one of my scripts, you can scroll down to the "Schedule Options" section. There is a button to edit the XML file of my script. If you click on it, you get another window with the XML code. You can copy / paste it for example to notepad++ and then find and replace 1903 with 1909 or 1803. After that, you can copy / paste it back to the XML window in your SMA. If you safe that, you can deploy 1909 or 1803.
But I will test the scripts with 1909 as well if there are any error or something similar and then I will upload it here as well if you can wait a little bit to deploy 1909 :)
Hope that helps you.
Have a nice weekend. - sven.hain 4 years ago
did you tried the customer validation in your ITNinja profile? You need to go to your profile and then to the tab "Settings". There is a Customer Support Validation where you need to verify your Email. After the validation you can download my files.
Hope that helps you.
Have a nice day and stay safe. - sven.hain 4 years ago
in that case please create a ticket that support can look, why your account can not be linked to ITNinja. Normally if you have active maintenance, you can easily link your support account to ITNinja. - sven.hain 4 years ago
Will something be written for the Feature Update to Windows 10, Version 2004?
thanks
Steve - SteveNew 4 years ago
I will update the PreCheck script soon.
Have a great day.
Sven - sven.hain 4 years ago
sorry for the huge delay in uploading the new files. The files for 2004 PreCheck are now available :)
Have a great day.
Sven - sven.hain 4 years ago
Same job as you update your systems with OS Updates, Application Updates or Office Upates. Mabye reading this https://support-public.cfm.quest.com/57611_KACE_SMA_10.2_ReleaseNotes_en-US.pdf - Bilo111 4 years ago
Thanks
Steve - SteveNew 4 years ago
you are absolutely right. With 10.2. it is very easy to deploy the Windows 10 upgrades. This process will also check, if there are any issues on the client system. But if you want a more detail level of information, it still makes sense to use the PreCheck script to know, what is blocking the upgrade.
For the upgrade it makes now definetly more sense to use the function in the SMA :)
Have a nice day all together and stay safe. - sven.hain 4 years ago