Choose the Windows user Splunk Enterprise should run as
| It is no longer possible to choose the Windows user that Splunk Enterprise runs as. |
|---|
As of version 10.2, running Splunk Enterprise on Windows as either the Local System user or a domain user is no longer possible. Splunk implemented this change to improve security and reduce complexity overall when installing and using Splunk Enterprise on Windows. See Deprecated and removed in the Splunk Enterprise version 10.2 Release Notes. Read on to understand how these changes affect you and what you must do to maintain your existing user configuration during an upgrade. In general, if you currently run Splunk Enterprise in a local system or domain user configuration, you can continue using this configuration by following the instructions in this topic. |
Splunk has changed how you install Splunk Enterprise on Windows
These changes mean that you must adapt how you install or upgrade Splunk Enterprise on Windows.
- There is no longer an option to install Splunk Enterprise as a domain user. If you want to collect data from a Windows machine using a domain user, install a Universal Forwarder instead. The UF lets you choose a domain user or select the Local System user. See No Content found for /db/organizations/splunk/repositories/splunk-10_2/content/documents/DataManagement/Forwarder/Forwarder_Forwarder/InstallaWindowsuniversalforwarderfromaninstaller/InstallaWindowsuniversalforwarderfromaninstaller.dita. Note: It is possible to run both a Universal Forwarder and a Splunk Enterprise indexer or search head on the same machine, with the UF collecting the data and sending it to the local Splunk Enterprise instance.
When you install or upgrade Splunk Enterprise to versions 10.2 and higher, it runs as the unprivileged local service account
NT SERVICE\Splunkd. This happens when you either use theINSTALL_AS_ADMINISTRATOR=0argument to themsiexecinstaller, or do not specify the argumentTo continue running Splunk Enterprise as the Local System user during an installation or upgrade, include the
INSTALL_AS_ADMINISTRATOR=1argument. For example, to perform a quiet installation and run Splunk Enterprise as the local administrator, run the following command:msiexec.exe /i "splunk.msi" INSTALL_AS_ADMINISTRATOR=1 /qn- If Splunk Enterprise was installed to run as a domain user, the upgrade does not remove that domain user from the local Administrators group, but provides the
NT SERVICE\Splunkduser access to those resources.
User limitations for running Splunk Enterprise on Windows
These changes introduce limitations to how you can run Splunk Enterprise on Windows.
When Splunk Enterprise runs as the
NT SERVICE\Splunkduser, the software cannot access network resources that require domain authentication. This is because theNT SERVICE\Splunkduser is a local service user and lacks the following:Access Control List (ACL) permissions on network shares
The network privileges required to collect data remotely from other machines using Windows Management Instrumentation (WMI)
Alternative: Install the Splunk Universal forwarder on Windows machines where you need to use domain users or local administrative access. The Universal Forwarder can still be installed as the local administrator or a domain user.
For Splunk Enterprise installations where the Splunk database directory is separate from the SPLUNK_HOME directory, you must grant the
NT SERVICE\Splunkduser appropriate ACL permissions on the database directory tree. Failure to do so prevents Splunk Enterprise from accessing its databases. Use theicaclscommand-line utility in Windows to set the ACL permissions.Example:icacls {path-to-db-tree} /grant "NT SERVICE\Splunkd:(OI)(CI)(F)" /t /cwhere:
{path-to-db-tree}- path to the Splunk database directory(OI)- Object Inherit permissions that apply to files and subdirectories.(CI)- Container Inherit permissions that apply to subdirectories.(F)- Assign "Full control" permissions to the resource/t - Applies permissions to the target directory and all its subdirectories and files. Without /t, the command applies permissions to the target directory only.
/c - Instructs the command to
continue on access denied errors. This option attempts to apply the permissions to all files and subdirectories in{path-to-db-tree}. If it encounters an access denied error on any file or folder, it skips that file or folder and continues processing the remaining items in the path.