web analytics

Search

OSD – Remove Builtin Apps from Windows 10

For those not using LTSB but still want to remove all those builtin apps that come with Windows 10, the following script is what you need!

This will blanket remove all apps unless in the $WhiteListedApps array.

To get a list of the apps you need to run:

Copy the value in the “Name” Column into the $WhiteListedApps array to ensure its not removed. Some apps may be dependant on other apps, so make sure you test thoroughly!

Once you are happy, save it to a sub-folder where you keep your Source files and create a new ConfigMgr package without a a program. Once created, edit it and under the Data Souece tab enter the path to the folder you created above. Deploy it to your DPs.

Now edit your task sequence and create a new powershell step as shown here

And there you go! If you’ve done it right, then only the whitelisted apps will be installed on the target machine.

 

(I cannot take credit for the script – that honour goes to SCConfigMgr)

OSD – Creating a Multi OS Task Sequence

For a while, like most of you I guess, I have maintained at least one Task Sequence for not only each type of OS (Server, Windows 7, Windows 10, etc) but also for each edition of an OS (Pro, Enterprise, Standard, Data Center, etc).

Whilst this is great, it does mean that it requires a lot of effort to keep these up-to-date when you have new Applications, or Updates ,or drivers.

Each individual TS needs to be updated to reflect those changes.

 

So, I decided to try and reduce that to one “Super” task sequence that has everything in on place and installs the required OS, Setttings and Apps all from a single variable that you specify at the start of the Deployment.

Here’s how:

Create the Collection Variable

This is essential – without this the whole thing wont work. Simply create a new Collection Variable (see here for how) and call it something suitable – I used “OSSelection”.

Create the Task Sequence

You can either create a new TS from scratch, or as I did, create a blank TS and copy/paste your existing information in and edit it there.

For ease I am only doing 2 OS types – Server 2016 and Windows 10

Once you have done that you can start to organise it depending on your requirements.

First up was to select which Operating System to apply.

So I created a group called “OS Selection and moved the existing Apply Operating System Image step into here and copied it, renamed them to my respecting OS and changing the settings accordingly. The example below shows my settings for Server 2016:

Server 2016 Settings

Once done, we now need to tell the TS when to apply these settings by clicking on the Options tab and settings the conditions as shown:

.This means that this step will only apply if you enter “2016” into the prompt during deployment – more on that later

For Windows 10, I decided to use the release number (1703, 1709, 1803, etc)

It is then just a case of repeating the process for all the settings where you only want them to apply to specific OS types or versions

The following condition can be used to apply to all non Windows Server OSs (10,7, etc) and, as its applied to a group, will affect all steps within that group:

And this is the end product. The expanded sections (except the top branch) are where I have applied my conditions:

That’s it – just deploy it to the desired collection (In this case – All Unknown Computers). Oh and remember to add a boot image as well!

I also created Collection Variables with preset values so that if a machine needs to be re-imaged, the correct OS Variable is re-applied. (You don’t want your Web Server to become Windows 10!)

Deploying your Task Sequence

Once you have deployed your TS you can now use it:

Select the Task Sequence:

Now Fill in your variables – As this is a new computer, I also need to fill in its intended name.

By entering “2016” I am saying I want to install Server 2016…

And we’re off..

That’s it!

Happy Imaging.

OSD – Naming a new computer during PXE Boot

One of the most common questions asked when deploying a new computer with ConfigMgr is

How do I give the computer a name during OSD Deployment?

The answer is surprisingly simple…

  • Open the ConfigMgr Console and go to Device Collections.
    Device Collections View

     

  • Right click on the “All Unknown Computers” Collection and click the “Collection Variables” tab. Click on the “New” button (the one that looks like a star!) to open the “<New> Variable” dialog
  • Under “Name” enter: OSDComputerName
  • Don’t assign any values and clear the “Do Not Display this value in the Configuration Manager console” toggle box

    Add a new Collection Variable Dialog
  • Click OK to save and close the dialog
  • Your new variable will now be shown in the list and ready for use when you next boot up a new computer that is not know to ConfigMgr (by that I mean its not listed under “Devices”…)

    Collection Properties – Collection Variables

If you DON’T see this then it may be worth checking that you have setup your PXE-Enabled Distribution Point to Enable Unknown Computer Support

%d bloggers like this: