SelfX (Self fix): a tool allowing users to solve their issues themselves and reduce tickets/calls to your support team
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 by themself before contacting support.
Context
- There are a lot of tickets/calls to support
- Many can be solved without admin rights
- You want to avoid call to support
- You want users can solve issue themselves
- You want to add yourself a list of issues
Advantages
Easy to install
The solution can be deployed through Intune, MECM or whatever you want.
The only step is to use sources and install PS1.
We will see the install process later in the post.
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 does not need admin rights to be solved.
The goal is then to solve/avoid all basic tickets/call to 1st, 2nd support level depening of your support team organization.
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.
Multilanguage
Everything in the tool can be managed through an XML file.
You can then customize issues list, title, text in buttons...
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.
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
- Status on Teams is not correct
- Message content on Teams is not displated correctly
- Teams meeting button is missing in Outlook
- Teams is freezing on audio conversation
- Teams camera is frozen/invisible
- Device is running slow
All those issues can be solved with PowerShell.
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.
Of course each script is executed without admin right.
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. After installing the tool a SelfX folder is created in %localappdata%.
2. It contains sources: PS1, XAML, the XML issues list...
3. Shortcut will be available on desktop and start menu
4. After running the shortcut, a GUI will be displayed
5. The GUI will load content from XML
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.
The XML is located in %localappdata%\SelfX\Issues_List.xml
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 run a gpupdate.
For this, I will:
- Add new category called device
- Display action: Update Active Directory policies
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)
Locally
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
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:
How to get it ?
Click on the below GitHub picture to dowload the tool
How to install it ?
We will proceed as below:
1. Add your issues as above
2. Run Install_tool.ps1 without admin rights
If you use the XML list on the web proceed as below:
1. Add your issues as above
2. Run Install_tool.ps1 with parameter XML_Link
3. In XML_Link add path of the XML from web
4. In my case it's located on blob storage
Implement with Intune
Creating the package
1. Update Issues_List.xml with your issues
2. Download the tool here
3. Run Intunewin Create and Extract (EXE or desktop shortcut)
4. Go to Build tab
5. Go to Package sources part
6. Click on Browse
7. Select the folder containing your application
8. Go to Application name
9. Select Install_tool.ps1
10. Go to Location part
11. Click on the Browse button
12. Select the folder where to save the intunewin package
13. Click on Build the intunewin package
14. Create a new Win32 app in Intune
15. 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. Select install as user
10. Type informations, as below:
11. Click on OK
12. Click on Program > Configure
13. In Install command type this:
14. In Uninstall command type the same
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 Use a custom detection script
21. In script file select Intune_Detection_Script.ps1
22. Click on Next
23. Click on OK twice
24. Click on Add
Assign the app
1. Go to Assignments
2. Click on Add group
3. Assign as you want
What's next ?
SelfX admin
I will soon provide another version allowing users to solve issues requiring admin rights.
Don't worry no risks because there is nothing open as system to the user like explorer, command prompt...
SelfX Chat
I'm also working on a ChatBot version fully built in PowerShell.
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
8 commentaires
Awesome!!! Thanks for doing all this
you have no idea how much my self and community apricate you, your next level thinking is mind blasting
Not sure if I'm missing something, but where's the download link?
in the part :How to get it ?
I am trying to customize the category in the xml file but am limited to "solved issues with." I want to create a separate category dropdown, is there a way to do this?
Je découvre ce petit soft... ça a l'air d'être une petite perle ! T'aurais pas les fichiers xml en français, par hasard ? Quelque chose me dit que la version originale n'est pas en anglais ! :)
Nice idea but the code need to be a little bit cleaned.
I'm not a PS specialist but some things triggered me, like this :
$Get_Current_user = (gwmi win32_computersystem).username
$Get_Current_user_Name = $Get_Current_user.Split("\")[1]
$User_Profil_Path = "C:\Users\$Get_Current_user_Name\AppData\Local\Microsoft\OneDrive\OneDrive.exe"
This is way overcomplicated when you can just use $env:USERPROFILE :
$User_Profil_Path = "$env:USERPROFILE\AppData\Local\Microsoft\OneDrive\OneDrive.exe"
Also your way is not totaly correct, because sometimes user profiles are not stored on C drive.
Hi there !
You think that's possible to get like an "older" version ?
I mean .. I wanna get the foldering categories and the search button together ! I see that you did remove the categories in the list view.
If you can't I'll work on it, but if the job has already been done :)
Enregistrer un commentaire