SelfX admin: a tool allowing users to solve issues (requiring admin rights) themselves and reduce tickets/calls to your support team

2 A+ A-

In this post I will show you a tool allowing you to reduce number of tickets/calls to support by allowing users to solve their issues requiring elevated rights by themself before contacting support.


- There are a lot of tickets/calls to support

- Elevated rights may be required to solve them

- You want to avoid call to support

- You want users can solve issue themselves

- You want to add yourself a list of issues


Reduce support tickets/calls number

The idea of the tool is that when a user has an issue on his device, he will first run the tool to check if something corresponds to his issue.

If yes he just has to click on a button to solve the issue by himself without calling support team.

User will be able to solve issue that event if they require admin rights to be solved.

The goal is to solve/avoid all tickets/call to support when it's possible.

Easy to update/manage

All issues in the tool are displayed through an XML file.

This way, you can really easily add a new issue in the tool by adding a new file.

Indeed the idea is that I provide the main tool with some issues ideas and then you add your own issues depending of your IT infrastructure.


Everything (really everything) in the tool can be managed through an XML file.

You can then customize issues list, title, text in buttons...

It's now up to you to change it to your own language.

Issues list location

All issues are location in an XML file.

This XML is by default located locally.

It's also possible to use it from the Web, like blob storage.

Easy to use

The tool is really easy to use for a user.

He just has to scroll down the list of action and search if he finds something relative to his issue.

A search bar also allows him to filter on issues.

User right version

You can find there another version allowing users to solve issues that don't required admin rights.

The solution

What is the goal ?

The idea of the tool is, as may know, you can automate a lot of things.

When a user has an issue you solve it manually, however it can be done through PowerShell.

For instance let's take some examples:

- User has sync issue with OneDrive

- You have file locked on OneDrive

- Device is running slow

- You want to restart a specific service 

- Many more...

All those issues can be solved with PowerShell.

Elevated rights ?

As mentioned previously this tool allows user to solve issues requiring admin rights.

Don't worry the idea is not to provide admin rights to user or credentials.

The solution is really simply, we will just run the tool in system context through the Company Portal or Software Center (for MECM).

This way the tool will be opened as system, meaning elevated rights and each action through the tool will be executed with admin rights.

The tool won't open any cmd prompt, explorer window... so don't worry people couldn't use it in bad ways.

The user GUI

The solution is to provide a GUI to user displaying different lines.

Each line corresponds to a specific issue.

All issues are organized in different categories like OneDrive, Teams, Outlook, Device...

Each line contains two buttons:

- Run an action

- Show an explanation

If the user clicks on the first button, a script is executed in background to solve the issue.

You can add as many actions or categories you want in the tool. 

Indeed everything is managed just with an XML file: actions list, title, subtitle...

Note: I provided a list of actions in the XML but the idea is you add your own issues in the XML. Indeed issues depend of your context, for instance we don't have the same VPN client, office version...

How does it work ?

1. Go to the company portal or Software Center

2. Launch SelfX admin tool

3. A GUI will be displayed

4. The GUI will load content from XML

5. Select the issue

6. Click on the solve issue button

The SelfX tool won't be installed on your device.

We will set a fake detection rule for the Win32 app or MECM application.

This way the user will be able to run the tool whenever he wants (we will see the GUI in details later).

Adding issues

As mentioned before, the GUI displays a list of issues.

All issues are provided through an XML file, nothing to do in the PS1 or XAML.

Note: I provided a list list of actions in the XML but the idea is you add your own issues in the XML. Indeed issues depend of your context, for instance we don't have the same VPN client, office version...

Adding a new action in the list can be achieved in 2 steps:

- Add new node in the XML

- Copy PS1 in the Script_to_run folder

XML node is composed as below:

- Name: text displayed in the list

- Explanation: warning after clicking on the 2nd button

- Script: file executed after clicking on the 1st button

- Category: category of the action 

- Alerte_MSG: warning after clicking on the 1st button

In the below example I want to add an action allowing user to restart Intune service.

For this, I will:

- Add new category called device 

- Display action: Force synchronization to Intune

See below the appropriate node:

Then we will need to add our script in the Scripts_to_run folder.

When you run again the shortcut, you will see the new action as below:

There are two ways to get list of issues in the tool:

- Locally

- From the web (like blob storage)


In this case proceed as below:

1. Edit the Issues_List.xml file

2. Go to XML_Version

3. Type your XML version (depending of your change)

4. Add your issues

5. Copy script in Scripts_to_run folder

6. Create or update the Win32 app

If you choose this method, when you want to add new issues you will need to update the Win32 app meaning intunewin file.

From the web

In this case proceed as below:

1. Edit the Issues_List.xml file

2. Go to XML_Version

3. Type your XML version (depending of your change)

4. Add your issues

5. Copy script in Scripts_to_run folder

6. ZIP content of Scripts_to_run folder

7. Upload the ZIP somewhere (for me a blob storage)

8. Get path of the ZIP from the web

9. In Link_Scripts copy this path

If you use this way, each time the user will run SelfX, it will first get XML from the web and check if this is the latest version.

How it looks like ?

The GUI looks like as below:

For each category an expander is created, as below:

Each nodes in the XML is displayed in the appropriate category, as below:

Each line contains two buttons as below:

A legend at the top explains what does each button:

When user clicks on the run button a warning is displayed, as below:

When user clicks on the run explanation a warning is displayed, as below:

A search button at the top, in the title bar allows you to filter on issues.

After clicking on it, the below window will be displayed

Choose the category of the issue, then type a key word.

Changing language

As mentioned previously, you can easily change the language of the GUI by managing an XML file.

For that proceed as below:
1. Edit the file Issues_List.xml
2. Go to the node GUI_Config
3. The main GUI looks like as below:

See below properties from the XML corresponding to the GUI.
To change with your language, just edit content from XML.

See below how to change language for the filter issues part:

Changing tool color
You can easily customize the color of the tool.
By default the color is Cyan, as below:

To change it, proceed as below:
1. Edit the Issues_List.xml file
2. Search following node: Tool_Color
3. Add color you want
4. Here below I changed it to Red
5. See below the result:

Available colors: Red, Green, Blue, Purple, Orange, Lime, Emerald, Teal, Cyan, Cobalt, Indigo, Violet, Pink, Magenta, Crimson, Amber, Yellow, Brown, Olive, Steel, Mauve, Taupe, Sienna 

Adding support info part
You can add a button allowing user to see information about help desk, support team.
See below an overview of this part :

To add it we will proceed as below:
1. Edit the Issues_List.xml file
2. Search node Show_Support_Button
3. Set it to True
4. Configure support info using below node:
- Support_Phone_number
- Support_Mail_Label

You can also configure language of the text.
See below how to customize this part using the Issues_List.xml

How to get it ?

Click on the below GitHub picture to dowload the tool

Implement with Intune

Creating/Updating the package

1. Update Issues_List.xml with your issues

2. Add scripts in the Scripts_to_run folder

3. Download the tool here

4. Run Intunewin Create and Extract

5. Go to Build tab

6. Go to Package sources part 

7. Click on Browse

8. Select the folder containing your application

9. Go to Application name

10. Select Run_SelfX.ps1

11. Go to Location part

12. Click on the Browse button

13. Select the folder where to save the intunewin package

14. Click on Build the intunewin package

15. Create a new Win32 app in Intune

16. Integrate the new intunewin created

Integrating in Intune

1. Go to Intune

2. Go to Client apps

3. Go to Apps

4. Click on Add

5. Select Windows app (Win32)

6. Browse to the intunewin

7. Click on OK

8. Click on App information > Configure

9. Type informations, as below:

10. Click on OK

11. Click on Program > Configure

12. In Install command type this:

13. In Uninstall command type the same

14. Select System

15. Click on OK

16. Click on Requirements > Configure

17. Type your requirements

18. Click on OK

19. Click on Detection rules > Configure

20. Select File detection

21. Choose a fake detection method

22. There it's C:\Windows\toto\toto.txt

23. Click on Next

24. Click on OK twice

25. Click on Add

Assign the app

1. Go to Assignments

2. Click on Add group

3. Assign as you want

Feedback needed

If you have implemented SelfX to your company, all feedback are welcome.

I'm really interested to see if your tickets number have been reduced since the implementation.

For that send me a mail at damien.vanrobaeys@gmail.com or a tweet to @Self__x

slider 2853740772247251066

Enregistrer un commentaire

2 commentaires

Anonyme a dit…

Just a couple of questions on this. On the install command, you forgot to enter what the install command is.

Also what is the difference between Selfx Standard and Selfx Admin?

Does this script create the toto.txt file?

Unknown a dit…

Hello, I would like to learn the uninstall command for this.

Accueil item



Learn KQL in one month

You want to support me ?

Mes articles en français

Books in French