Windows 10 upgrade assessment using Onevinn TSLaunch
Today version 2 of the “Onevinn Windows 10 Upgrade tools” was released and there are many new great features in there created by my colleague Johan Schrewelius. It can be downloaded here: https://gallery.technet.microsoft.com/Windows-10-Upgrade-Tools-431094ca
More information on what TSlaunch is can be found here: https://ccmexec.com/2018/05/windows-10-upgradeservicing-tools-demoed-at-mms-2018/
I will try to cover at least some of the new features starting with how we can use the new feature for Windows 10 Upgrade Assessment. The new version of TSLaunch includes a SCCM console extension where we can monitor Tslaunch status and Upgrade Assessment status as well if we choose to use that feature.
We can have TSLaunch to automatically run a assessment upgrade as soon as the the content for the upgrade is cached locally, the result will be written to a central log file and to the SCCM console using custom status messages. This will give as nice graphical overview in the SCCM admin console of how the upgrade assessment ran and also the possibility to deep-dive into any error as shown below.
You can then select “Launcher” in the menu to the right to see more status, in my case the Windows 10 Upgrade Assessment failed on one computer, the error message is translated to a more understandable error at least for the known errors.
A log file is also created where we can see the status of everything TSlaunch actually do, it is placed in C:\Windows\Temp and copied to the logshare defined in the tslaunch.exe.config file as well.
You can then drill down to the specific computer in the console, and if you have fixed the assessment error you can select “Start TSlaunch” and it will actually inject a script in SCCM and execute it on the client using the “Runs Script” feature in Configuration Manager.
We can also run script based on the Windows 10 upgrade assessment status, success or failure then we can add computers to collections, remove them, email or whatever we want to do. Simply place the script in the TSLaunch folder and add it to the tslaunch.exe.config file.
How do we configure it then? The user-guide that Johan put together it simply great it covers that as well.
In TSLaunch.exe.config there are a couple of settings we change that is related to Windows 10 Upgrade Assessement.
RunAssessmentTestWhenContentAvailable
If the task sequence deployment is configured to pre-download all content before running it’s
possible to have TSLaunch perform an “Assessment test”. This will be performed according to the
settings in the next key “AssessmentTestArguments”.
The result of the test will be logged as integer, hex and, in most cases, clear text.
Example: “True” or “False”
Remark: Running an Assignment test might temporarily impose a slight negative impact on the
computer’s performance. Since TSLaunch is running repeated preflight checks until all pass the
assessment test will be suppressed for 12 hours. once succeeded. This will be logged.
AssessmentTestArguments
When an assessment test is performed during (within) an upgrade task sequence it invokes the windows installer program “Setup.exe” with the following arguments: “/ImageIndex 3 /auto Upgrade /quiet /noreboot /DynamicUpdate Disable /compat ScanOnly” The “AssementTestArguments” key is prepopulated with the same switches and arguments. The image index might have to be changed if you’re upgrading to anything apart from the Enterprise edition, are using modified (patched) media or if Microsoft in the future decides to not bundle the different editions. For 1709 and 1803 out of the box media, no change is required.
It’s possible to add an extra switch/argument to the line if you wish to have the logs copied somewhere for further analysis.
/CopyLogs \%COMPUTERNAME%
%COMPUTERNAME% will in this case be resolved by TSLaunch
SkipAssessmentTestOnFinalPreflightCheck
Even if the preflight checks have previously succeeded TSLaunch will always perform a final check
just before launching the upgrade task sequence. This is necessary to detect if, for example, the user
has disconnected the AC power or left the company network since last run.
It might not be necessary to run an assessment test as part of this final check; thus, it can be
suppressed by setting this key to “True”.
Example: “True” or “False”
AssessmentSucessScript
There are many possible outcomes of an assessment test, one is success all the others are different
kinds of failures, all preventing the upgrade.
If the test is successful you might want to take some special action, like adding the computer to a
collection or similar. To accomplish this, it’s possible to run a PowerShell script on success. The script
could in turn invoke a web service, such as OnevinnWS, to do the actual adding. An example script
that does just that has been included. Executed as SYSTEM.
Leave blank if no script should be run.
Example: “MyOnAssessmentSuccessScript.ps1” or “”
AssessmentFailedScript
Same as above but the script will be invoked in the event of a failure. Executed as SYSTEM
Example: “MyOnAssessmentFailureScript.ps1” or “”
This gives us great flexibility and more information and options to be successful in our Windows 10 Servicing.
Hi Jörgen,
I have tried to install that tool. But I get error message if I run TSLaunch.exe DEBUG
[WARNING] 2018-09-29 10:00:00 Remote log location \\sccm01.eklient.lab\osdlogs$ doesn’t exist.
[ERROR] 2018-09-29 10:00:00 This upgrade has expired. ‘AutoStartUpgradeOnEndDate’ is set to True, attempting Upgrade.
[ERROR] 2018-09-30 10:00:01 Failed to resolve AdvertisementID or PackageID for Task Sequence.
How can I run the tool or create a TS? Is this the issue sccm01.eklient.lab
Hi,
Yes, you need to customize the Date and make sure that it can reach the file share to be able to do the logging.
Regards,
JÖrgen
Hi Jorgen
Thanks to sharing this awsome tool from your colleague Johan.
Even if I read and reread the doc, I try to figure out how assessment work during this scenario. Actually we only have one TS which make the Win 10 upgrade. For assessment, we used OMs Upgrade Readiness, but it’s a nightmare. I try to find another solution for assessment and you’re article is very interesting but I don’t understand how can I use it. Should I need to create a new TS only for the assessment process or TSlaunch work only with a global TS which include the assessment process and the Win10 upgrade process ?
Because we like to keep the Assessment process independenlty of the upg process (juste to compile all assessment data in a way to build a solid win10 upg TS)
There seems to be somethon wrong with how the tool uses the “EndDate” value.
If I specify a date in the same format as in his PDF guide, on my client I see this in the log:
“Error converting EndDate, aborting exection. Exception: String was not recognized as a valid DateTime.”
The client itself has a completely different date format.
So in the XML the date format is: MM-dd-yyyy or MM/dd/yyyy
on my client, the format is: dd/MM/yyyy
I will test this a little more. I’ll set the EndDate to be the same format as the client and see what the behavior is.
We have clients all over the world and all of them are using the date format of their specific region.
If the tool needs the same format like the clients, then this becomes useless for us as we can’t know who has which format.
I think the tool needs to be smarter in handling all different date formats for the EndDate.
Currently, this is a show stopper.
I want to give myself a slap in the face for being this stupid.
I set the EndDate to be 04-31-2019 for testing.
So it turns out that April doesn’t have 31 days!
Appologies for being this stupid.
This tool works perfectly fine!
Hi,
Glad to hear that you solved it!
/Jörgen
This tool is working great but I’m coming across some systems that when the launcher is minizmed it doesn’t come back automatically. I’m starting to look to see if I can find something different on these systems but wanted to ask you as well if you had seen this. I can relaunch it and if the user minimizes it again will not pop up. If the computer restarts it will pop-up. This will cause issues once the deadline as passed and cause systems to upgrade without notice.
Hi Jörgen,
A small question.
In my test I ran into a HardBlock due to a compatibility issue with the Intel Audio Drivers.
More info here: https://support.microsoft.com/en-us/help/4465877/what-needs-your-attention-intel-audio-display-notification
I then corrected the problem by updating the drivers and ran the TSLaunch again from CinfigMgr.
The Powershell script ran successfully.
I can see that in SCCM in Script Status and also in the Scripts.log file.
Howeber, TSLaunch doesn’t run again on my client.
The Scheduled Tasks are not created and the Registry keys are also not there anymore. (Only an empty Onevinn reg key: HKEY_LOCAL_MACHINE\SOFTWARE\Onevinn)
I’ve run it multiple times and it’s successful every time.
There is no change whatsoever.
Any idea what can be the issue?
How should I trigger TSLaunch again on assessment failure?
Thanks!
I have now downloaded the latest version (I was running the previous version) and there is new bug.
the X days left to upgrade is now calculated with (EndDate – CurrentDate).
Before, this value was actually the value you type in “DeploymentValidNoDays”.
I’m confused about this.
Shouldn’t here be the date value you set in “DeploymentValidNoDays”?
Also, when will the upgrade actually be enforced?
I thought when the DeploymentValidNoDays count downs to 0 (zero), the upgrade would be enforced?
Now I’m not sure anymore!
Also, what would happen if the “EndDate” is actually reached?
You’ll probably find me very annoying, but I really want this to work and I want to use it in my next upgrade batch.
I’ve also noticed that if a device passes all preflight checks and also the compatibility check and the device upgrades, it is displayed nicely in the TSLaunch monitoring console.
If you deploy TSLaunch to a device that’s running the latest version already, that device is displayed as “Error” in the Preflight result.
“[ERROR] 2018-11-22 11:09:00 Detected Windows edition Enterprise version 17763 Windows cannot or has already been updated.”
While this is only a cosmetic issue, I think this should not error out but it should be displayed as already compliant.
I’ve noticed this when I deployed a newer version of TSLaunch to the same collection as the previous one.
This particular device was already upgraded with an older version, and when TSLaunch ran again, it showed this error.
We have the same problem, after a HardBlock due to a compatibility issue with the Intel Audio Driver TSLaunch won’t start again even after we fix the audio driver.
Hi,
You need to target the computer again with TSLaunch, it should be in the docs. That is why we run the Powershell scripts to remove it from collection on failure so we can add it back.
Regards,
Jörgen
This utility is very promising. The one great thing about it is adding control to the “end user” for scheduled upgrading.
I do have an issue that I am not able to explain. While deploying the previous version, there are a small subset of machines that receive the policy and 10 hours later, when no one has even seen the TSlaunch.exe utility, the system begins to upgrade. My grace period is set for 30 days yet it started the upgrade the same day it received the policy.
Hi Jörgen,
We have an issue with SCCM console extension. When opening and using it, it nags for wrong date/time format “The conversion of a varchar data type to a datetime data type resulted in an out- of- range value.” Is this based on date/time settings on that computer where this extension is installed? How to fix it? How to make this work with Finnish date/time -settings? Otherwise very cool tool!
Regs Kari
Hi,
We have exactly the same issue. TSLaunch ConfigMgr extension 2.3.18325.1 installed on Current Branch 1810. Is there a solution?
Regards,
Bernd
Hi,
Is it an upgrade or a new installation? Has it worked. That version works just great in 1810. Can you provide more information?
Regards,
Jörgen
It is an initial installation of the TSLaunch ConfigMgr extension. OS and SCCM 1810 both in installation language German. It also works, except for multiple pop-ups of the message “The conversion of a varchar data type to a datetime data type to an out-of-range value.” When selecting a TS deployment in the status window.
Regards,
Bernd
Hi,
I have the same error “The conversion of a varchar data type to a datetime data type resulted in an out-of-range value” (translated from french). Do you have any solution ?
It is un new installation of the TSlaunch ConfigMGR extension.
SCCM version 1802,
COnsole version 5.1802.1082.1807
TSLaunch ConfigMgr extension version 2.3.18325.1
Thanks,
Franck
Hi,
the new beta version 2.3.19109.1 of TSLaunch ConfigMgr extension, works fine without any of that issues!
Thank you Johan, for your great work!
Regards,
Bernd
Hi, I. Wanted to have a look at this in debug mode. But it will not run. Do you need to make any changes to the Config file before that will run?
Hi,
The debug mode is only available when the Task Sequence engine is running.. it takes a while for it to initate after a reboot, could that be the case?
Regards,
Jörgen
I had the same problem. You need to set an EndDate or it won’t run. Not even create a Log File or anything.
Hi Jörgen,
Scenario:
A user choose to re-schedule the upgrade with some hour.
During this timeslot, some windows updates been installed that require a rebooot.
I what way could I inform the user that the computer must be restarted –
before the upgrade will start?
Regards,
Leif
Hi! Great tool, working great for us. Except for one small caveat. The security permissions around the 12.2 section. We have users with limited access to the console to do task sequence deployments, etc. So they are not full admin of the console. But we want them to have access to TSLaunch extension. I have tried adding them to the ConfigMgr_DViewAccess group on both the local Primary box and the local SQL server that hosts the DB, adding a domain group. They are getting error about permissions to their account when clicking the extension.
I have access as I am full console admin. What do they need more if this is not working for them? Avoiding adding them as full admin that is.
Hi Jorgen, I am trying to get TSLaunch to run in DEBUG mode to validate the pop-up settings and I keep running into an error “There is an error in XML document (10, 131). I can’t figure out what is wrong or missing in the XML syntax.
Hi, I got a strange problem. On the first machine the TS worked fine without any issues. I then deployed to another machine and suddenly dring the Assesmnet i get following error: [ERROR] 2019-08-01 16:00:14 Assessment test failed to locate content for Package id: NF10016B. The funny thing is that the id is the tasksequence itself. Any idea why this happens? Thanks for your efforts and keep up the good work!
Hi
We have en issue. If a user schedules the upgrade to ie. friday night at 22.00 and the DeploymentValidNoDays is set so that the deployment expires saturday or sunday.
If the computer is not turned on friday night, when the user returns monday morning and turns on the computer, TSLaunch recognizes that it has expired, removes registry and scheduled tasks and leaves the machine un-updated and without a new schedule.
It would be nice, if the user was prompted with the ‘last warning’ if the above scenario occurs.
/Michael
TSLaunch.exe is great, solves a major people issue in my office. I can’t seem to get the console extension to work. When I launch it, I get an error “The target principal name is incorrect. Cannot generate SSPI context.”. I am not sure what I missed.
Paul
This could be caused by a number of reasons; the simplest being, you’re logged on with a password that has now expired or been changed? Other possibilities are bad SPNs or malfunctioning DNS, you have to investigate such problems by scrutinizing relevant logs in your environment.
Hi,
Great tool!
Have an issue with Scheduled installations that are set to start the installation automaticly. Get this error every time on all clients that I have tested on:
“Failed to find a Schedule for upgrade.”
The task is present in tack scheduler and the set schedule is also set i registry. What am I doing wrong? (It works when then the installation is triggerd via the “Upgrade now” button.)
I also ran into this issue. Has anyone figured this out? I see that the task scheduler is missing the scheduled task but not sure why.
Hello,
Great Tool, works great. However, I have an issue with the SCCM console extension. I am not able to find the TS Deployments related to the upgrade. I only see the OSD task sequences. Am I missing anything?
Hi! I guess this is not possible, but I would like to check with you. We would like to use TSLaunch for other sequences than Windows upgrade. Driver update for example. But I guess this is not possible due to the use of windows buildnumber to determine if TSlanch should run or not?
Har ni någon ny version/uppdateringar på gång?
Yes!