Ae banner

Windows 10 Feature Update

Upgrade Win 10 to the latest version

Description

This agent procedure will upgrade Windows 10 to Build 1909 to - This solution will audit and upgrade Windows 10 Feature to the latest version.

Developer
  • Name: Douglas Sanchez
  • Company: Kaseya
  • Website: http://www.kaseya.com
  • Contact Developer
  • Summary
  • Windows 10 Feature Update
  • 1011 Downloads
  • Version:
  • Initially Released January 13th, 2020
  • Reviews
    Gravatar for Michael VonHatten
    by Michael VonHatten on March 19th, 2021

    works great with w10pro - thx

    Gravatar for Jim Considine
    by Jim Considine on August 24th, 2020

    The process works great. Easy to deploy to multiple systems over a weekend. Will look to use this to deploy build 2004

    Discussion
    Gravatar for Daniel Valenti
    Daniel Valenti over 1 year ago

    Is there any way to prevent the auto reboot? 

    Gravatar for Douglas Sanchez
    Douglas Sanchez over 1 year ago

    Yes, you would need to add the "/noreboot" switch on line 16

    Gravatar for Wouter Keizer
    Wouter Keizer over 1 year ago

    Hi, im running in to an issue with windows 7 PRO OEM

    OS is activated but check of this script says it is not.

    Therefore upgrade is not starten.

    Any idea what the cause could be?

    Gravatar for Johan
    Johan over 1 year ago

    @Wouter Possibly a language thing? Check what language Windows reports the activation status in. Run the PoSH command manually for this. Adapt the script as needed.

    Gravatar for Richard Gericke
    Richard Gericke over 1 year ago

    Doesn't work for Enterprise Edition 

    Gravatar for Wouter Keizer
    Wouter Keizer over 1 year ago

    Sounds good but im not very good with Powershell or scripting language.

    What command should i run from the script in local PowerShell.

    OS is Dutch by the way.

    Gravatar for Johan
    Johan over 1 year ago

    Sorry, I messed up, this script should not mess up with other languages (the 1903 one does). Run this on the target machine, if it returns 1, it should run fine:
    (Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" | where { $_.PartialProductKey }).LicenseStatus

    Gravatar for Martijn Wenke
    Martijn Wenke over 1 year ago

    Sometimes the script estimated that there was not enough free space, but there was more that 32 GB. The command '((Get-PSDrive C).Free/1GB)' returned for example 104,748271942139. I changed the Powershell command to fix this issue with a cast to integer: [int]((Get-PSDrive C).Free/1GB). At the same system this command returned 105, so it could continue with the next steps.

    Gravatar for Gertjan
    Gertjan over 1 year ago

    Does this script work on NL versions?

    Gravatar for mreyesleal@gmail.com
    mreyesleal@gmail.com over 1 year ago

    Guys, im really new on this, its there any ways to check the steps on doing this?

    Thanks!!!!

    Gravatar for Phil
    Phil over 1 year ago

    I am new to this too.  What do I do with this file/script once I download it?

    Gravatar for Kim
    Kim over 1 year ago

    Is there any known fix to get this to work on the enterprise edition of Windows 10?

    Gravatar for Anthony Byrd
    Anthony Byrd over 1 year ago

    Running into same problem as @wouter and after trying to run the command you specified it returns that Get-CimInstance is not a recognized internal command. 

    Gravatar for Laurens Driessen
    Laurens Driessen over 1 year ago

    Hi there,

    For most VM's and systems the Agent Procedure finished succesfully.

    About the failed ones I got the same issue as @Martijn Wenke:
    "Sometimes the script estimated that there was not enough free space, but there was more that 32 GB."

    The W10 Home (x64 + activated + 1903 build) system which failed has 196GB free disk space. 
    What could cause this and how to fix this? 



    Gravatar for Johan
    Johan over 1 year ago

    It's because of regional setting (dot vs comma). Just round down to the GB to avoid this. Replace the first PoSH command in the procedure by this one:
    [math]::Round((Get-PSDrive c | Select-Object -ExpandProperty Free)/1GB,0)

    Gravatar for Laurens Driessen
    Laurens Driessen over 1 year ago

    @Johan

    Thank you, that did the trick.

    Gravatar for David Horvath
    David Horvath over 1 year ago

    I am trying to run the procedure on a windows 10 VM and I keep getting the error message: Script Summary: Failed Then in step 2(line 3).  I'm guessing this is the same problem that occurred with Martijn Wenke had but, I'm not sure how to resolve this.   Would I just replace 

    ((Get-PSDrive C).Free/1GB)

     With 

     [int]((Get-PSDrive C).Free/1GB)

    Thanks for any help


    Gravatar for Brian McLaughlin
    Brian McLaughlin about 1 year ago

    I'm getting "SUCCESS THEN" returned as the status, but nothing seems running or updating. The status is showing success after only about 5 minutes.

    Any idea what might cause this?

    Gravatar for Chris Amori
    Chris Amori about 1 year ago

    Brian, "Success Then" is just a Kaseya response saying it ran the script with no syntax failures.    If the script is not working, it is likely that your machine can't be upgraded for some reason.     My suggestion would be to run the updater manually and see what error is preventing it from installing.

    Gravatar for Chris Amori
    Chris Amori about 1 year ago

    BTW, can anyone confirm that the /noreboot actually works?    In my initial testing of the upgrade utility, it would ignore this.


    Gravatar for Brian McLaughlin
    Brian McLaughlin about 1 year ago

    No errors when I log in remotely and manually run windows update. I have been doing it this way for a week now on some ~100 computers to get them up to date (mind numbing). Trying to find a way to push this to another 500+ computers so that this isn't a month long project.



    Gravatar for Jonathan
    Jonathan about 1 year ago

    Hi Brian. The procedure itself finishes pretty quickly but the actual upgrade takes 45 minutes to multiple hours and will continue well after Kaseya reports the procedure has completed "successfully".    I've relied on a combination of patience (just wait 2 hours after running) and View to check the OS build number.   If the OS build number hasn't' changed after 2 hours, then it probably failed.      We've been able to upgrade 900+ machines using this method with a high success rate. 

    Gravatar for Brian McLaughlin
    Brian McLaughlin about 1 year ago

    Thank you for the help guys, I will continue to monitor. If I log in remotely the computers don't seem to be installing anything in the background, or rebooting.

    Didn't see anything failing in the procedures log so maybe it just hasn't had enough time.

    Appreciate the help

    Gravatar for Cees
    Cees about 1 year ago

    Hi Brian, maybe u can also use Microsoft SetupDiag to determine what the cause is of the unsuccessful upgrade. https://docs.microsoft.com/en-us/windows/deployment/upgrade/setupdiag


    Gravatar for Rich Tyree
    Rich Tyree about 1 year ago

    Agree with @Johnathan comment, i have used an unmodified version, you really should allow the reboots however. I have hit my system in bunches of 50 then wait 15 minutes -  launch the next 50, only so that i am not saturating my known links. this would vary for your use i would assume but the largest i have have deployed in one sitting was about 300 (i had a weekend) and it took 9 hours for the last one to come online.

    I use views with filters for the OS build version, then i can get granular by dropping into the organization.

    I have completed hundreds (if not thousands by now) of updates using this script as well, with very high successes rate, when they did fail, and on review, i had issues on the system. Corrupt installer was number one, less than 30GB free was two and the other was unhealthy disk. none of the failed installs crippled my systems, it just says successful and does not complete.

    for me i run a post cleanup stored procedure though to clear out the leftover files, not just form the update bot overall clean. 

    Hope this was helpful

    Gravatar for Jay Jansen
    Jay Jansen about 1 year ago

    A cleaner way to see the windows 10 version is to use a custom column and a script to query the releaseID from the registry that will give you the friendly 1809/1903/1909/etc version. Then you can build views on this (example <1903 on that custom value in the advanced editor)or do exports from manage agents to get a good overview of the current state of a client without having to decipher the build numbers.

    Query example if you want to see the data and adapat to your own script:

    reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v releaseid

    Once you have a script then you can just add it to your existing deployment script to be called via executeprocedure and set it to run 2hr from that time or so.

    Gravatar for Andreas Exner
    Andreas Exner about 1 year ago

    or with Powershell : Get-ComputerInfo | Select-Object -ExpandProperty Windowsversion

    Gravatar for Andreas Exner
    Andreas Exner about 1 year ago

    Douglas? Where exactly did you get the commandline switches from?

    Gravatar for Douglas Sanchez
    Douglas Sanchez about 1 year ago

    @Andreas I believe this is the article I used, it's been a little while though: 
    https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options

    Gravatar for Douglas Sanchez
    Douglas Sanchez about 1 year ago

    Another useful link I had regarding logs during the upgrade: https://support.microsoft.com/en-us/help/928901/log-files-that-are-created-when-you-upgrade-to-a-new-version-of-window 

    Gravatar for Andreas Exner
    Andreas Exner about 1 year ago

    Here are the command line switches I found out.
    /Push
    /Install
    /SetupFile
    /SkipSelfUpdate
    /ReUseCatalog
    /SkipEULA
    /OobeUi
    /OobeRS2Ui
    /EosUi
    /PostEosUi
    /TenSUi
    /PreventWUUpgrade
    /SetOobeTourniquetRunningRegKey
    /SetPriorityLow
    /UninstallUponExit
    /UninstallUponUpgrade
    /ForceUninstall
    /MinimizeToTaskBar
    /ShowProgressInTaskBarIcon
    /SkipCompatCheck
    /QuietInstall
    /NoRestartUI
    /EnableTelemetry
    /InstallationFolder
    /Edition
    /Language

    Gravatar for Dmitrij Kondrasov
    Dmitrij Kondrasov about 1 year ago

    Is it upgrading to 1909 version or latest?

    Ex. now latest 2004. is it upgrade 1909 or 2004?

    Gravatar for Eric Peacock
    Eric Peacock about 1 year ago

    @Dmitrij Kondrasov, this procedure downloads the file:
    https://download.microsoft.com/download/9/b/f/9bf08afb-bfd8-488a-9ce6-90134cea4d8f/Windows10Upgrade9252.exe  I just downloaded and ran this on my 1909 computer and it says "Thank you for installing the latest Windows", with no option to upgrade.

    Then I went to this page: https://www.microsoft.com/en-us/software-download/windows10 and downloaded the upgrade assistant from there. The download URL is different:  https://download.microsoft.com/download/8/3/c/83c39dca-2d27-4c24-b98b-0a4d6d921c80/Windows10Upgrade9252.exe

    Same .exe filename, but different URL paths.

    It looks like this procedure links to the 1909 upgrade assistant only.

    Gravatar for Dmitrij Kondrasov
    Dmitrij Kondrasov about 1 year ago

    Just checked. This procedure upgrading to latest build. For now it 2004.

    Gravatar for Kiran
    Kiran 3 months ago

    I can seem to import the script after downloading it.....tried it on multiple computers...it just does not show.

    Gravatar for Kiran
    Kiran 3 months ago

    I cannot import the script after downloading it.....tried it on multiple computers...it just does do anything. neither does it show up in any of the folder in the Agent Procedure section/menu

    Gravatar for Daniel Valenti
    Daniel Valenti 3 months ago

    same here i cant import the script. Nothing shows on the tree of agent procedures. 

    Gravatar for Daniel Valenti
    Daniel Valenti 3 months ago

    You need to go to System > Server Management > Import Center to import this script. Not from Agent Procedures. As it says in the Installation Guide. LOL 

    Gravatar for Jason Madigan
    Jason Madigan 3 months ago

    I'm getting "File was not uploaded" when I try to import it via the Import Center.

    Gravatar for Dhaval Brahmbhatt
    Dhaval Brahmbhatt 3 months ago

    hey Guys

    I am testing this to upgrade from 1909 to 2009 directly. 

    It did the download of the ESD etc all ok and I think it did what it needed to do just fine but didn't reboot the computer. 

    Once I manually rebooted the computer, it started the actual upgrade of the OS. 

    Checking the log file called upgrader_default, I saw that it said "waitforrestart" so I assume it waits for reboot? 

    Is there a way to force the upgrader file to reboot the computer when it needs to? 

    The plan is to do this upgrade overnight so it has to reboot and not inconvenient the user, in case they reboot the computer during working hours. 


    BTW, this procedure itself finishes once the upgrader executable is launched with appropriate switches. The agent procedure successfully running doesn't check if the upgrade process itself went fine or not. 

    Anyone had this? The computer doesn't reboot to finish the upgrade? Would love to have it work properly. 

    Dhaval 

    Gravatar for Daniel Valenti
    Daniel Valenti 3 months ago

    Are you on SaaS or do you have your own VSA? I use this script to upgrade windows 7 machines and to update windows 10 machines. I have no issues with the script no rebooting the machines.

    Gravatar for Glenn Barnas
    Glenn Barnas 3 months ago

    This should not depend on SAAS or On-Prem. There are a number of things that can prevent the update from starting, including free space, pending updates, pending reboots, O/S licensed, etc. This is why our tool has an optional and comprehensive pre-check mode you can run before actually downloading and running the updates. If the machine passes the check phase, it's got a great chance of completing the update without issue. 

    This is probably why the upgrade started after you rebooted - a pending restart flag was likely active.

    Our experience has been that regardless of the initial platform build, the upgrade process takes just under 2 hours and performs 3-5 reboots. I've never had a machine not reboot after updating. If you aren't sure about pending updates/reboots, you can try starting with a reboot and then running the updater.

    Gravatar for Ivo
    Ivo 3 months ago

    Hi everyone,

    The procedure works fine in upgrading to the latest version which currently is 20h2 (2009). I would instead like the option to either choose which feature update to install or to always get the second to last one. My (current) goal is to upgrade to 2004 instead of 2009.

    The procedure downloads the Windows10Upgrade.exe from the following link: (this one seems to always upgrade to the latest version (20h2/2009))
    https://go.microsoft.com/fwlink/?LinkID=799445

    I managed to find these URLs online:
    1903: https://download.microsoft.com/download/9/6/4/96409c48-4ad8-4660-8482-0ca61f05d58b/Windows10Upgrade9252.exe
    1909: https://download.microsoft.com/download/9/b/f/9bf08afb-bfd8-488a-9ce6-90134cea4d8f/Windows10Upgrade9252.exe
    2004: https://download.microsoft.com/download/8/3/c/83c39dca-2d27-4c24-b98b-0a4d6d921c80/Windows10Upgrade9252.exe
    2009/20H2: https://download.microsoft.com/download/7/a/a/7aa0472b-49a0-46d1-b651-e8a2c53f1fe4/Windows10Upgrade9252.exe

    However, every single one of them seems to upgrade to the latest version anyway (20h2/2009). Does anyone know a way to upgrade to 2004 (so the second to last feature upgrade currently). I'm trying to acomplish this using a Kaseya procedure or a Powershell script that I will call using Kaseya, any help would be much appreciated.

    Gravatar for Glenn Barnas
    Glenn Barnas 3 months ago

    Ivo - the URLs for the upgrade trigger a process to determine the current build of the local machine and then download the package to upgrade to the latest build. It's unlikely that those URLs will work the way you expect. You would need to identify the specific download package needed for a specific update, not the upgrader tool in the above links. You would need to identify specific packages to upgrade from the current to the specific build number. For your case, you might want to consider creating your own set of updaters using media from a 2004 ISO.

    Gravatar for Josh Shapiro
    Josh Shapiro 3 months ago

    After importing the xml file, where does it go? I can't find it

    Gravatar for Simon Davies
    Simon Davies 16 days ago

    Running the upgrade procedure worked perfectly on my test rig that was on an 20H2 and I am now up to date on 21H1.

    With the release of Win 10 21H1 however it has become apparent that Microsoft are not changing the ReleaseID value in the registry between 20H2 and 21H1 so it may be better to use CurrentBuild during the audit to distinguish between the two, 20H2 is 19042 and 21H1 is Build 19043.

    Gravatar for David Rostoker
    David Rostoker 16 days ago

    I agree. Version 2009 refers to both 21H1 and 20H2. And I can't find anywhere that documents what this procedure refers to as a "version".

    I would prefer it if the procedure could use the version listed in this Microsoft link - https://docs.microsoft.com/en-us/windows/release-health/release-information - which seems to be the standard reference.

    Also note that the documentation should also point out that the references in the reports needs to be changed to refer to the actual Custom Variable if they are going to work. This was also omitted in today's IT Toolkit session.

    Gravatar for David Rostoker
    David Rostoker 16 days ago

    I agree. Version 2009 refers to both 21H1 and 20H2. And I can't find anywhere that documents what this procedure refers to as a "version".

    I would prefer it if the procedure could use the version listed in this Microsoft link - https://docs.microsoft.com/en-us/windows/release-health/release-information - which seems to be the standard reference.

    Also note that the documentation should also point out that the references in the reports needs to be changed to refer to the actual Custom Variable if they are going to work. This was also omitted in today's IT Toolkit session.

    Gravatar for David Rostoker
    David Rostoker 16 days ago

    I agree. Version 2009 refers to both 21H1 and 20H2. And I can't find anywhere that documents what this procedure refers to as a "version".

    I would prefer it if the procedure could use the version listed in this Microsoft link - https://docs.microsoft.com/en-us/windows/release-health/release-information - which seems to be the standard reference.

    Also note that the documentation should also point out that the references in the reports needs to be changed to refer to the actual Custom Variable if they are going to work. This was also omitted in today's IT Toolkit session.

    Gravatar for Mark Needham
    Mark Needham 16 days ago

    Isn't software management supposed to take care of this? Why doesn't it?

    Gravatar for David Rostoker
    David Rostoker 16 days ago

    I'm new to this, but I don't always see a needed Feature update after a scan and I don't see any other way of triggering this via Software Management.

    Gravatar for Chris Hindson
    Chris Hindson 16 days ago

    Feature update for 21H1 is supported by Software Management, BUT the endpoint MUST be at least version 2004.

    Prior versions will need to use this Upgrade Assistant process.

    KB5000736: Featured update to Windows 10, version 21H1 by using an enablement package (microsoft.com)

    Gravatar for Elena
    Elena 16 days ago

    We are not using software management yet but I did find an article in Kaseya about enabling Microsoft Enablement Package Patch which is related to what Chris Hindson mentioned.

    Windows 10 Feature Updates via Software Management (Microsoft Enablement Package Patch)

    Gravatar for kcox
    kcox 15 days ago

    It would appear to me that Microsoft has decided that with 21H1 they will no longer update the ReleaseId and instead update the new Key added with 20H2 of DisplayVersion.

    Gravatar for Ken
    Ken 15 days ago

    I guess I maybe really old school but I just use the View to tell me what OS version is installed from the Agent TAB.

    Our network does NOT connect to MicorSoft (Firewall Blocked except for one IT Subnet)  so this has not been an issue for me. ( by our choice - we do not want anyone doing any bypass updates on any devices)

    I download the entire offline  install package for any version into a Kaseya server folder.

    For deploy: use the Application deploy to create the Setup.exe push ( from th efolder created with all the files\folders of the install) to the device with the parameters. I use this as my base for the deploy.

    Then I edit this procedure:

     writeDirectory - too push the folder to the device ( wherever you choose on the C:)

     getVariable -Agent Install Drive (C:\)  agentDrv  to install the setup.exe

     ******* this is the original Deploy Procedure******

    writeFile  too push the setup.ext to the device ( wherever you choose on the C:)

    executeFile runs setup.exe with  /auto upgrade /quiet /showoobe none

    ****************************

    sendEmail   send email to me let me know the process has run

    deleteDirectory   Recursively remove the folders you added in the beginning

    To Run:  Create a Agent View to specify that version you are looking for and select the Devices in Agent Procedures to run anytime

    Once it is built once, just change download folder and edit procedure to advance to next version.

    This can be used to step older versions of win 10.

    May not be the most elegant way to do it, but when something works....

    Gravatar for Alan Sudweeks
    Alan Sudweeks 15 days ago

    Ken,  would you share what IP ranges you blocked for microsoft?   We use O365 on the cloud so i would need to keep access to that.  But i would love to shutdown all the random updates that come whether you want them or not

    Gravatar for Kenneth L. Nagel
    Kenneth L. Nagel 15 days ago

    wrong ken.

    Gravatar for Kenneth L. Nagel
    Kenneth L. Nagel 15 days ago

    wrong ken.

    Gravatar for Kenneth L. Nagel
    Kenneth L. Nagel 15 days ago

    wrong ken.

    Gravatar for Ken
    Ken 15 days ago

    Sorry to ruffle someone feathers.

    I am Kenneth L W Houtz 27 years IT

    MS IP change all the time , it was a hit or miss but we started with the URLS 

    Careful not to shoot yourself in the Foot.  Always test on your oen

    As much as we hate to, we do allow O365 updates to run on their own

    http://windowsupdate.microsoft.com

    http://*.windowsupdate.microsoft.com

    https://*.windowsupdate.microsoft.com

    http://*.update.microsoft.com

    https://*.update.microsoft.com

    http://*.windowsupdate.com

    http://download.windowsupdate.com

    http://download.microsoft.com

    http://*.download.windowsupdate.com

    http://wustat.windows.com

    http://ntservicepack.microsoft.com

    http://stats.microsoft.com

    https://stats.microsoft.com


    There is always a constant license check that hits the firewall from random devices. Our block has never rejected a MS device registration/Activation from anyplace on the network

    I would start obvious listed (http://*.windowsupdate.microsoft.com) and add a few at a time while testing.


    I work for a County in MD. We have 600 Workstation with over 20 buildings in the county. 7 people on our team.

    Gravatar for Kenneth L. Nagel
    Kenneth L. Nagel 15 days ago

    sorry that was my bad.. got click happy.. LOL

    Gravatar for Alan Sudweeks
    Alan Sudweeks 15 days ago

    Thank for that update.  That gives me a great place to start.  We are running just over 300 pcs with 3 of us.  so we keep super busy.  :)  Kaseya has been a life saver

    Gravatar for Habakkuk Caleb
    Habakkuk Caleb 15 days ago

    I am unable to import the .xml file to VSA, is there any issues?


    Gravatar for Alan Sudweeks
    Alan Sudweeks 15 days ago

    Habakkuk,  You may need to change your settings to allow that file type to upload to the VSA

    Gravatar for Habakkuk Caleb
    Habakkuk Caleb 15 days ago

    Alan, I am able to upload other .xml files except this one.

    Gravatar for Todd Reibling
    Todd Reibling 15 days ago

    I found that I could not upload this xml into the agent procedure interface, but I could upload/import it via the System module > Import Center.  It then shows the additional parts that are imported as well. i.e. views, report, and the agent procedure all at once.

    Gravatar for SHRI MUTHULINGAM
    SHRI MUTHULINGAM 8 days ago

    Hi

    My reporting is not working as described in the instruction. It is not grouping as 2004 or 2009. It is listing version#14.x.x.x.x..


    Gravatar for Wissam Oreibi
    Wissam Oreibi about 5 hours ago

    Hi,

    I was able to download files and import them. I tried to test it on a test Virtual machine with windows 10 build 1803. The procedure appears to download windows update assistant and install it then download the installation files over the internet and finally reboot virtual machine in about 1 to 2 hrs of time. Unfortunately, after reboot, the build is not upgraded and there is no logs in log folder neither in event viewer with no entries showing if there was an issue.

    Running the same command that procedure is executing manually via a logged on user does upgrade the OS build successfully. 

    The Virtual machine we are testing with is in trial as it is a fresh install. We have tried procedure on a physical laptop with an active windows 10 build 1909 and we had same result as explained above. So it appears that when procedure is running in background it does some of steps but after reboot build is not upgraded while if we execute same command used by procedure manually the upgrade works.

    Anyone may have encountered the same issue that might be able to shed some light on this and point us into right direction.

    Command that procedure uses in background is:

    Windows10Upgrade9252.exe /quietinstall /skipeula /auto upgrade /copylogs <pathtologdirectory>

    Thanks,

    Gravatar for Tommie Gowdy
    Tommie Gowdy about 5 hours ago


    @Wissam Oreibi

    I am no expert but just how it was explained I wonder if you add login credentials or no reboot to script maybe this would work?

    10

    Gravatar for Wissam Oreibi
    Wissam Oreibi about 5 hours ago

    I know that Dev who wrote the script executed command as "system" which has admin privileges'. I am not familiar with how to add login credentials to procedure. I would imagine I will need to edit procedure that was written and amended it. Do you happen to know how this can be done, if you can past a line.

    for example in Developer procedure he has this line which basically saves command into a powershell then execute as system. What makes me wonder is others in this discussion thread said it worked for them but did not hear that procedure needed modification !!

    executeshellcommand("echo #vAgentConfiguration.agentTempDir#\Windows10Upgrade9252.exe /quietinstall /skipeula /auto upgrade /copylogs #vAgentConfiguration.agentTempDir#\logs >> #vAgentConfiguration.agentTempDir#\WindowsUpgrade.ps1","Execute as System", "All Operating Systems", "Halt on Fail")