Powershell tool: Software Center for MDT


In this post I will show you a tool I created in Powershell, called MDT Software Center that allows you to install software, languages packs, upgrade OS... from your main Deployment Share like the Software Center from SCCM.

In SCCM, as you may know, there is a great functionality called Software Center.
That allows you to install items to a client computer from a distribution point.
MDT is really a great OS deployment solution. However, in a company that only uses MDT, there is no possibility to deploy software or whatever else from a client computer.

So why not using a solution like this with MDT?
That's why I decided to create this tool. Yeah I know I'm a bit crazy, but I like it, jejejeje (Octavio this is for you). So now let's see how works the tool.
Thanks Nico, Jérôme and Octavio for your tests.


How to get the tool?


Which context ?


The main Deployment Share could be located:
- On an USB Stick
- On a Deployment Share located on your network


Tool videos explanation

How to use it

How to implement it


How it looks like ?

The tool, fully done in Powershell, is composed of five parts:
- Applications
- Language packs
- Updates
- OS Upgrade
- Installation status


Applications
This part list all applications located in your deployment share.
The tool detects automatically if an application is already installed on your computer, or if a different version is installed or if it's not installed.
Application part overview
See below how works this part in details.
- If an application isn't installed, Install button is enabled, as below.
- If an application isn't enabled on the Deployment Share, it's marked as Not available. 

Language packs
It lists language packs located in your Deployment Share and detects if the MUI is compatible, already installed or not.
Language packs part overview
- If the OS version of the client isn’t compatible with the language pack listed, it’ll be marked as Not available for this OS version.
- If the OS version of the client is compatible with the listed language pack and if it’s not already installed, it will be marked as Not installed.
- If the OS version is compatible and the MUI is already installed, it will be marked as Already installed.
Depending of the language the MUI flag will change.
MUI Flag change
See below an overview of an MUI installation:
Language pack installation


OS Upgrade
This part lists all Upgrade Task Sequence from your Deployment Share.
Each Task sequence will be compared with the OS available on your Deployment Share to get information.
OS Upgrade part overview
- If the OS version of the client is lower than this one included in your Upgrade TS, it will be marked as Not installed
- If the OS version of the client is the same of this one included in your Upgrade TS, it will be marked as Already installed.
- If the OS version of the client is greater than this one from the Upgrade TS, it will be marked as Not available for this OS version.

See below, a sample of an Upgrade TS

Updates
It lists all update packages located in your Deployment Share (OnDemand & Update/Security).
Updates part overview


- If the client OS version isn’t compatible with the update listed version, it will be marked as Not available for this OS version.
- If the OS version of the client is compatible with the listed package and not already installed, it will be marked as Not installed.
- If the OS version of the client is compatible with the listed package and already installed, it will be marked as Already installed.

Installation status
It lists all installation that have been done on the client using the tool.
Installation status part overview
The view message button allows you to display the error message, as below:
Display error message

The Clear my history button, allows you to clear the installation history relative to your computer.

What is added?
When an installation is finished, the script Check_for_error.ps1 will check values from the file C:\Windows\Temp\DeploymentLogs\Results.xml located in the client.
Those values will be added in the Catalog_error_status.xml.

Where is located the installation status history?
As mentioned in the next part, the Catalog_error_status.xml and Check_for_error.ps1 files have to be copied in the Scripts folder from your Deployment Share.

You also have to create a step in the Catalog TS to run the Check_for_error.ps1 script.

How does it work ?

Interaction tool - Deployment Share
To resume,
1 / You have an EXE and a MDTSoftwareCenter_Configuration.xml file located on the client.
2 / The xml file is used to set some information like the deployment share path. See below an overview.
3 / The tool will use this file to connect to the Deployment Share after running the EXE.
4 / Then, content from your Deployment Share will be listed.
5 / To install for instance an application, click on the application to install and click on the Install button.
6 / This will run the MDT process.

File to download
The download link is composed as below
Download link content
To copy in your Deployment Share
Copy files located in Copy in your Deployment Share\In Scripts in the Scripts folder of your deployment Share.

To copy on the client
Copy content from On C on the C: drive from the client.
Copy content from On desktop on your client computer desktop.

What to add on client ?
Copy the Catalog exe file on desktop
Copy the xml on the C: drive

What to add in your deployment Share?

Scripts and xml
Part to add is located in the folder: Copy in your Deployment Share
Add the files below in the Scripts folder from your Deployment Share.
Check_for_errors.ps1
Install_Packages.ps1
Catalog_Error_Status.xml

Task Sequence
Create a new Task sequence configured as below:
Type: Custom Task Sequence
ID: CATALOG. 
Catalog TS properties

The tool will run this TS.
See below how is composed the TS.
Catalog TS Content
Install applications Step
Install applications step properties
Install applications step options

Install Packages step
Install Lang and Packages step properties
Install Lang and Packages step options

Check for errors step
Check for errors step 


How does the tool detect that a software is installed or with a different version?
When an application is added by the tool, it will automatically add some registry keys. This way it’ll be detected next time.
It will create a key HKLM\Software\MDT_Catalog\Applications.
In this key each application installed will create a key using the name located in the Applications.xml see below.
 It will also create two strings as below

What's next ?

1 / Enable display in full screen
2 / Create a display with tile like in software center from SCCM
3 / Create notification in teams when item is installed
4 / Add a login screen in the tool, to connect to the deployment share
5 / Display notification when new items are available on the deployment share
6 / Create an external script that allows you to customize the tool by
- Adding your own logo
- Changing the theme
- Changing the main color



Share this

Related Posts

Previous
Next Post »