I have done this with SCCM so yes it is very possible.
Splunk Package with:
"This package contains source files". Put said source files on a network location and point the data source to the source folder.
Put the following in this folder:
org_all_deploymentclient (this is a folder)
inside org_all_deploymentclient, put the following structure:
state = enabled
check_for_updates = false
is_visible = false
is_manageable = false
# Change the targetUri
targetUri = <fqdn to your deploymentserver>
server=<fqdn to indexer>:<port>
Once you have this Package created, create a Program:
Name: SplunkUF (name it whatever you want)
command line: install_splunk.bat
After running: no action required
Program can run: whether or not a user is logged on
msiexec.exe /i "splunkforwarder-<splunkversion>-x64-release.msi" LAUNCHSPLUNK=0 AGREETOLICENSE=Yes INSTALLDIR="%ProgramFiles%\SplunkUniversalForwarder" SERVICESTARTTYPE=auto /quiet
xcopy "org_all_deploymentclient\*.conf" "%ProgramFiles%\SplunkUniversalForwarder\etc\system\" /s /e /i /y
for /F "tokens=3 delims=: " %%H in ('sc query "SplunkForwarder" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
net start "SplunkForwarder"
the second part of the script which starts the service if it isn't running is useful for upgrades, in case the service doesn't start.