Win10 Build Updates–Persistent Tweaks

CONTEXT: (Feel free to skip my babbling)
If you haven’t figured out by now, I hate managing things that I feel should manage themselves.  If I can get out of doing extra work, and have things in place to automatically take care of it, awesome.  Even if it’s less efficient on network resources, and I lose some granularity of control, if my environment doesn’t care, then I’m going to let things auto update, and auto remediate as much as possible.  (Note, where I work now, I don’t follow my personal philosophy, my environment cares, everything is controls to super granular levels, but we have people to manage it here, at my last place, it was just a couple of us doing everything, so we had to employ methods to do things with out technicians having to get involved.)

IDEA:
Make Windows 10 Build Updates easier.  While I love Task Sequences, I don’t want to have to make something complex for a build update that happens every 6 months.  I want windows to update, and I want to keep the customizations I put in during OSD.
From MMS Presentation: Download full Presentation HERE
image
image

HOW:
Tried and True is Group Policy, however, group policy can take a little while to kick back in, and I don’t want to wait, I want the customizations there before the user logs back in, I don’t want the user to know things changed.  I decided to go with good old scheduled tasks and two scripts, (1 batch file & 1 powershell) plus a 3rd script to build the scheduled tasks and copy the files required locally.

Basically, the batch file is a combination of all the system level tweaks crammed into one script, and the powershell file is the “remove default apps” script. Hopefully after 1709, you won’t need to keep removing the AppX packages, I’ve heard they are “fixing” it so that it will honor the appx you’ve removed, and not put them back in, however, they will probably keep adding in new AppX packages that you’ll have to decide if you want to keep or remove, so there is a good chance you’ll have to run a modified version of this script for each build upgrade forever.

Batch File to Create Scheduled Tasks & Copy Required Files to c:\ProgramData:

Powershell Script To Remove Default Apps (Thanks @Geodesicz):

Batch File to Reapply System Level Tweaks:

Once you have those, you’ll need to create the Scheduled Tasks:
I’ve provided the XML files in the download, and the scripts to import them. (At bottom of post)

image

First Scheduled Task – Removing Defaults Apps
image imageimage

General: Windows 10 In-Place Upgrade AppRemoval
user account: SYSTEM
Run whether user is logged on or not
Run with highest privileges (Checked)
Configure for: Windows Vista / Server 2008

Trigger: On an Event
Basic: Microsoft-Windows-AppReadiness/Admin
Source: AppReadiness
EventID: 100

Action: Start a Program
Program / Script: powershell.exe
Add arguments: -executionpolicy bypass -file "C:\ProgramData\Win10Upgrade\Windows10Tweaks\RemoveDefaultAppsWin10.ps1"

 

Second Scheduled Task – Reapplying Tweaks / Branding
imageimageimage

General: Windows 10 In-Place Upgrade Tweaks
user account: SYSTEM
Run whether user is logged on or not
Run with highest privileges (Checked)
Configure for: Windows Vista / Server 2008

Trigger: On an Event
Basic: Microsoft-Windows-AppReadiness/Admin
Source: AppReadiness
EventID: 100

Action: Start a Program
Program / Script: C:\ProgramData\Win10Upgrade\Windows10UpgradeTaskFixesScript.cmd

 

Application Contents: (Root)
image

Application Contents: (Subdirectory)
1703 folder just contains the Images I used with our 1703 deployment.

image

Once you've run the Setup Script or Application, it will create the Scheduled Tasks, and copy the files needed to run after the build update to:

DOWNLOAD Exported Application: https://garytown.com/Downloads/Win10InPlaceUpgradeTweakTasks_files.zip
This contains the raw files, you don’t actually need to import if you don’t want to.

For the Application Model of Win10 Build Upgrade, I had an application with the content source of the extracted ISO:
Install Program: Setup.exe /auto upgrade /DynamicUpdate Enable /showoobe none  (This will download and apply updates, which can take a long time, but recommend you still do this unless you manually update the install.wim file)
Detection Method: Registry: HKLM\SOFTWARE\Micrsoft\Windows NT\CurrentVersion CurrentBuild = 15063 (1703 - Change the Build number to match the Build you're deploying)

Please customize the tweaks for your environment. 🙂

As always… TEST TEST TEST.  As I mentioned in the beginning, I don't use this method any longer due to different requirements at my new employer, so I'm no longer testing and developing this process.
Please note, the Lock Screen Image can be inconsistent, sounds like MS is aware of a bug, and hopefully future builds will fix this, so if your Lock Screen doesn’t always apply right each time you test… call it good enough and move on to the next thing on your list.

 

Update 2017.09.07 - Jason Freeman (@loosusjason) pointed out you can do this with SetupConfig.ini - More info HERE

 

One thought on “Win10 Build Updates–Persistent Tweaks

  • September 4, 2017 at 10:49 pm
    Permalink

    Hey Gary,

    Thanks for the write up, and scripts.

    Much appreciated. 🙂

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *