SimpleHelp Community

PC Automation in SimpleHelp


Does anyone know how to automate setting up workgroup PC’s when they are added in SimpleHelp. Under each clients folder.

For example, it checks each machine that:
Bitdefender is installed, if not installs it
Acronis is installed, if not installs it
Chocolatey is installed, if not install it

  • checks chrome is installed
  • Adobe reader Is installed
    ABC update

Disable auto run
Adds our admin account



I use pdq inventory and deploy for this personally, so I never thought about doing it through SimpleHelp. I have not tested it, but what I would do is create a custom tool alert that runs once a day or week. Create a toolbox with a PowerShell script ( I am assuming you are using windows clients) and do something similar below. You could use the scripting API to push an executable, or use powershell to download the software like in my example, or include the executable in with your script. I personally wouldn’t include the executable because it would have to download each time it ran/checked for software based on the time interval you set. I would set it to download from someplace like in the example I gave.

This is just how I would do it. But I also have not tested it. Test,test,test.

Disclaimer: Script not tested

#allow powershell scipts to run
set-executionpolicy remotesigned
#search for software name in registry
$software = "Bitdefender";
$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null

If(-Not $installed) {
	Write-Host "'$software' NOT is installed.";
	Write-Host "'Now Installing $software' ";
#download bitdefender custom client
$destination = "c:\temp\YOURBITDEFENDER.EXE"
Start-BitsTransfer -Source $source -Destination $destination
# run install with parameters
Start-Process -Wait -Filepath $destination -ArgumentList '/bdparams /silent silent' -PassThru

} else {
	Write-Host "'$software' is installed."

Scripting Api link:


Unfortunately, there is no support for this out of the box. We have been asking for this for quite awhile now. The good news is I remember seeing a note from support saying they were “looking into” adding this functionality in the future so keep an eye out it maybe? Below is what we are currently doing.

We have an OnBoarding script we kick off manually for devices when we add them. It’s NOT perfect but it works for us. I will try and implement @Darrell_Swafford’s suggestion and see if I can automate this.

New system OnBoarding Check

# Get Machine Property Variable OnBoardingStatus - typically, it's null (does not exist) and we set it to 1 after provisioning. Just prevents the script from kicking off multiple times.
$OnBoardingStatus = 'ServerUtilsGetMachineProperty(@ThisMachine(), OnBoardingStatus)'
# Grab the computer name for Alerts
$MachineFullName = "ServerUtilsGetMachineFullName()"

# If the OnBoardingStatus is not = 1 (including null) then kick off default deployment
If (1 -ne $OnBoardingStatus)
     # *** Alert/Notify Section ***
     # notify all tech's of a new device (full path)     
     ServerUtilsNotifyAllTechs(Important, "New Device Detected $MachineFullName")
     # Notices to End User onboarding is going to start
     ServerUtilsNotifyMachines(@ThisMachine(), Alert, "Welcome to Central Point Networks! We are starting the On-Boarding Process for this computer. Your system may reboot multiple times.")

     # *** Admin/Account Mgmt Section ***
     # Add local backup admin account
     ServerUtilsRunTool(@ThisMachine(), @TechsByLogin(Tech1), @Tool(OnBoarding - Local MSP Account))

     # *** Software Install Section ***
     # Install backup RMM TOOL
     ServerUtilsRunTool(@ThisMachine(), @TechsByLogin(Tech1), @Tool(Deploy - Backup RMM Tool))
     # Deploy Google Chrome
     ServerUtilsRunTool(@ThisMachine(), @TechsByLogin(Tech1), @Tool(Deploy - Google Chrome))
     # Deploy AV
     ServerUtilsRunTool(@ThisMachine(), @TechsByLogin(Tech1), @Tool(OnBoarding - AV Deploy))

     # *** Done ***
     # Set Machine as OnBoarded
     ServerUtilsSetMachineProperty(@ThisMachine(), OnBoardingStatus, 1)

NOTE: We have found that the script has to be set to “Run as the service user and be visible to the logged in user” for the end-user alerts to work.


Each of the Tools we run for deployment check to see if the software is installed and if not will kick off the installation.

Hope this helps!


If you need to hire me to do this, let me know. I did this for all my huge clients.


Mind sharing what you did to accomlish this?


Tons and tons of hard work.