# ************************************************************************
# Copyright (c) 2019-2024 Broadcom.  All Rights Reserved.
# The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
# *************************************************************************

# "CAUTION: tools.conf is highly syntax sensitive file. Use extreme caution
# while editing it. If modified, it is automatically re-loaded by
# VMware Tools services every 5 seconds."
#
# Lines must not end with trailing white space.

[unsetenvironment]
# Defines environment variables to be removed from the service reading
# the configuration file. Supported formats are:
#
# 1. <variableName>=
# 2. <serviceName>.<variableName>=
#
# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
# <variableName> refers to the name of the environment
# variable to be removed. '=' sign after <variableName>
# is mandatory to maintain the configuration file syntax.
# However, anything after '=' is ignored.
#
# Case-sensitive behavior is defined by the operating system.
#
# Note: unsetenvironment group is processed before setenvironment group.
# As the service environment is setup at start up time, any changes
# in this group require service to be restarted in order to take effect.
#
# Unsetting PATH for all services:
# PATH=
#
# Unsetting PATH for vmsvc only:
# vmsvc.PATH=
#
# Unsetting PATH for vmusr only:
# vmusr.PATH=

[setenvironment]
# Defines environment variables to be set for the service reading
# the configuration file. Supported formats are:
#
# 1. <variableName>=<variableValue>
# 2. <serviceName>.<variableName>=<variableValue>
#
# Where <serviceName> refers to the 'vmsvc' and 'vmusr',
# <variableName> refers to the name of the environment
# variable to be set, and <variableValue> refers to the
# value to be assigned to the environment variable.
#
# Case-sensitive behavior is defined by the operating system.
#
# Note: setenvironment group is processed after unsetenvironment group.
# As the service environment is setup at start up time, any changes
# in this group require service to be restarted in order to take effect.
#
# Setting TMPDIR for all services:
# TMPDIR=/vmware/temp
#
# Setting TMPDIR for vmsvc only:
# vmsvc.TMPDIR=/vmware/vmsvc/temp
#
# Setting TMPDIR for vmusr only:
# vmusr.TMPDIR=/vmware/vmusr/temp

[logging]
# set to false to turn off logging
#log = true

# Log destinations for various services
# By default, logs go to
# %windir%/temp/vmware-<servicename>.log
# for Windows, and
# /var/log/vmware-<servicename>-<username>.log
# for Linux, MacOS and Solaris.

# Possible values for handler are:
# file: logs to a file. Set *.data to the file name
# file+: same as 'file', but appends to the file
#  All file paths used in *.data value need to be in Unix
#  format (forward slashes) and in utf-8, for all operating
#  systems.
# vmx: logs to the host (ESXi, Workstation, Fusion)
# std: Logs to stdout for level >= 'message',
# and to stderr for more severe than 'message'.
# syslog: logs to syslog
# outputdebugstring: uses OutputDebugString (Windows only)

# If handler is 'syslog' and the OS is Linux, the facility
# can be set with <domain>.facility. The facility value can be one of
# 'local0'..'local7', 'daemon' or 'user'. The default is 'user'.
#vmtoolsd.facility = user

# possible values for level are:
# debug, info, message, warning, critical, error
# Note that "debug" level logs generate huge amounts of logs and may also
# include sensitive data required for diagnosis. Therefore, this level should
# be used only for the duration of diagnosis of an issue and reverted back to
# default setting post diagnosis.

# Enable tools service logging to a file.
#vmtoolsd.level = debug
#vmtoolsd.handler = file
#vmtoolsd.data = c:/tmp/vmtoolsd-${USER}.log

# Enable 'vmsvc' service logging to a file.
#vmsvc.level = debug
#vmsvc.handler = file
#vmsvc.data = c:/tmp/vmsvc.log

# Enable VMwareResolutionSet.exe logging to a file.
# Comment this for Linux guest, sometimes vmusr logs are not generated due
# to this being uncommented
#vmresset.level = debug
#vmresset.handler = file+
#vmresset.data = c:/tmp/vmresset.log

# Enable new "vmusr" service logging to a file.
#vmusr.level = debug
#vmusr.handler = file
#vmusr.data = c:/tmp/vmusr.${USER}.log

# Set the following configuration if you want to collect the logs for
# vmware-toolbox-cmd utility
#toolboxcmd.level = debug
#toolboxcmd.handler = file
#toolboxcmd.data = c:/tmp/vmtoolboxcmd-${USER}.log

# With no explicit logging configuration for deployPkg, its default log path in
# Linux is /var/log/vmware-imc/toolsDeployPkg.log, and in Windows is
# %WINDIR%/Temp/vmware-imc/toolsDeployPkg.log
# Set the following configuration if you want to redirect the deployPkg log to
# any existing location other than the default.
#deployPkg.level = debug
#deployPkg.handler = file
#deployPkg.data = c:/tmp/toolsDeployPkg-${USER}.log

# Redirecting the deployPkg log to the vmx log file. Please note that
# "log = true" and the vmsvc log handler setting to vmx are also neccessary
# if you want to redirect the deployPkg log to vmx.
#log = true
#vmsvc.level = debug
#vmsvc.handler = vmx
#deployPkg.level = debug
#deployPkg.handler = vmx

# Enable old VMwareUser/vmware-user logging to file.
#log.file = c:/tmp/vmtools.log

# Enable "hgfsServer" request handling logging to the appropriate service file.
#hgfsServer.level = debug

# Enable  "hgfs" manager and transport logging to the appropriate service file.
#hgfsd.level = debug

#vmbackup.level = debug
#vmbackup.handler = vmx

#vmvss.level = debug
#vmvss.handler = vmx

# Default 4096, 0=> deactivate log caching
#maxCacheEntries=4096


# Set the following configurations for modifying network script logging file.
# Only for Linux, Mac OS X, Solaris, and FreeBSD
#network.handler = file
#network.data = /tmp/network.log
#network.maxOldLogFiles = 9

# Redirect network script logs to vmx
#network.handler = vmx

[powerops]
# Custom scripts for power operations
# This can be an absolute path, or a path relative to the tools
# install path (/etc/vmware-tools/ for Linux).
# For more information on configuring and querying custom scripts with
# VMware Tools, see the "Use Custom VMware Tools Scripts" section of the
# "VMware Tools Configuration Utility User's Guide".

# Runs when the virtual machine is being powered on rather than resumed.
# Also runs after virtual machine restarts.
# The default script has no effect on networking for the virtual machine.
#poweron-script=poweron-vm-default

# Runs when the virtual machine is being powered off or reset.
# The default script has no effect on networking for the virtual machine.
#poweroff-script=poweroff-vm-default

# Runs when the virtual machine is resumed after it was suspended.
# On Windows guest operating systems, if the virtual machine is configured to
# use DHCP, the default script renews the IP address of the virtual machine.
# On Linux, Mac OS X, Solaris, and FreeBSD guest operating systems,
# this script starts networking for the virtual machine.
#resume-script=resume-vm-default

# Runs when the virtual machine is being suspended.
# On Windows guest operating systems, if the virtual machine is configured
# to use DHCP, the default script releases the IP address of the virtual
# machine.
# On Linux, Mac OS X, Solaris, and FreeBSD, this script stops networking for
# the virtual machine.
#suspend-script=suspend-vm-default

[guestinfo]

# Set to true to deactivate the perf monitor.
#disable-perf-mon=false

# Set to true to deactivate DiskInfo.
#disable-query-diskinfo=false

# User-defined poll interval in seconds. Set to 0 to deactivate polling.
#poll-interval=30

# User-defined stats interval in seconds. Set to 0 to deactivate stats collection.
#stats-interval=20

# Whether stat results should be written to the log.
#enable-stat-logging=false

# Set a comma separated list of network interface names that can be the
# primary ones. These will be sorted to the top. Interface names can use
# wildcards like '*' and '?'. Default is no value.
#primary-nics=

# Set a comma separated list of network interface names that have low priority
# (so they will be sorted to the end). Interface names can use wildcards like
# '*' and '?'. Default is no value.
#low-priority-nics=

# Set a comma separated list of network interface names that shall be ignored.
# Interface names can use wildcards like '*' and '?'.
# Default for Linux and all non-Windows:
#exclude-nics=veth*,docker*,virbr*,antrea-*,cali*
# Default for Windows:
#exclude-nics=vEthernet*

# max umber of IPv4 routes to gather.
#max-ipv4-routes=100

# max umber of IPv6 routes to gather.
#max-ipv6-routes=100

# whether to include reserved space in diskInfo space metrics on Linux
#diskinfo-include-reserved=false

[globalconf]

# The GlobalConf feature provides an ability for the vSphere administrators
# to distribute a 'VMware Tools Configuration File' (tools.conf) via the
# GuestStore for multiple VMs at scale.

# Defines the configuration to activate/deactivate the GlobalConf module.
# Set to true to enable(activate) the module.
# Set to false to deactivate the module. Default false.
#enabled=false

# Defines a custom GlobalConf poll interval (in seconds).
# Default 3600 seconds. Minimum 1800 seconds.
#poll-interval=3600

# Defines the global configuration resource in GuestStore.
# Windows guests
#resource=/vmware/configurations/vmtools/windows/tools.conf
#
# Linux guests
#resource=/vmware/configurations/vmtools/linux/tools.conf

[componentmgr]

# This plugin manages the known and enabled components add/remove status.
# The plugin polls at regular interval and triggers action add/remove for
# all the known and enabled components in the componentMgr plugin.

# Default and minimum polling interval in seconds (0 => polling deactivated)
#poll-interval=180

# Comma separated list of components managed by the plugin. If not specified,
# default value is all, which means all components are enabled by default.
# A special value of none means no component, which is equivalent to disabling
# the plugin completely. Value is parsed left to right and parsing stops at
# first occurrence of all or none or end of line.
#included=all

[appinfo]

# This plugin collects info about running applications in guest OS.

# Set to true to deactivate the appinfo plugin.
#disabled=false

# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
#poll-interval=21600

# For Windows guest, set to true to use WMI for getting the application
# version info, otherwise native Win32 API is used.
#useWMI=false

# Whether to remove the duplicate applications information in the
# guestinfo variable.
#remove-duplicates=true

[containerinfo]

# This plugin collects info about running containers in guest OS.

# User-defined poll interval in seconds. Set to 0 to deactivate the plugin.
#poll-interval=21600

# Maximum number of containers to be retrieved per namespace.
#max-containers=256

# Whether to remove the duplicate containers information in the
# guestinfo variable.
#remove-duplicates=true

# Unix socket to use to communicate with the docker daemon.
#docker-unix-socket=/var/run/docker.sock

# The unix socket to connect to communicate with containerd grpc server
# for retrieving the list of running containers.
#containerd-unix-socket=/run/containerd/containerd.sock

# List of namespaces to be queried for the running containers.
# The value for this key is a comman separated list.
#allowed-namespaces=moby,k8s.io,default

[servicediscovery]

# This plugin provides admins with additional info for better VM management.

# Set to true to deactivate the servicediscovery plugin.
#disabled=false

[unity]
#
# Unity is available for Windows only.
#

# Set to true to override system decisions about whether unity should be available.
#forceEnable=false

# Override the desktop background color when in Unity mode.
#desktop.backgroundColor=

# The socket type can be 'ipsocket' or 'vsocket':
#pbrpc.socketType

[resolutionKMS]

# Default is true if tools finds an xf86-video-vmware driver with
# version >= 13.2.0. If you don't have X installed, set this to true manually.
# This only affects tools for Linux.
#enable=true

[guestosinfo]

# Override the short OS name sent by tools.
#short-name=

# Override the long OS name sent by tools. Ignored if short-name is not set.
#long-name=

[vmbackup]

# enableSyncDriver is Linux only.
#enableSyncDriver=true

# enableVSS is Windows only.
#enableVSS=true

# vss.disableAppQuiescing is Windows only.
# This setting can be used to force file system quiescing on Windows systems
# having problems with application quiescing.
# See https://knowledge.broadcom.com/external/article?legacyId=2146204
#vss.disableAppQuiescing=false

# Linux:
# The value of excludedFileSystems is a comma-separated list of glob-style
# patterns specifying the file system mount points to be excluded from
# quiescing operation. The patterns may use '*' (wildcard) to represent
# any string of characters and '?' (joker) to represent any single character.
# The characters represented by the patterns '*' and '?' may include any
# characters, including '/'.
#
# Windows:
# The value of excludedFileSystems is a comma-separated list of mount points
# specifying the volumes to be excluded from quiesced snapshots.
# Each mount point must be a full path separated and ended with "\\".
# For example, to exclude volumes with drive letter 'E' or mount point
# "F:\mount\", use:
# excludedFileSystems=E:\\,F:\\mount\\
# This setting is ignored when application quiescing is used.

#excludedFileSystems=

# Linux:
# It is possible that filesystems are being frozen in pre-freeze scripts
# to control the order in which those specific filesystems are to be frozen.
# The vmtoolsd process must be informed of all such filesystems with the help
# of "excludedFileSystems" setting of tools.conf.
#
# A temporary workaround is available (starting from 12.3.0) for admins to allow
# quiesceing operation to succeed until the "excludedFileSystems" list
# is configured.
#
# If another process thaws the file system while a quiescing operation
# operation is ongoing, the snapshot may be compromised. Once the
# "excludedFileSystems" list is configured this setting MUST be unset (or set
# to false).
#
# The value of ignoreFrozenFileSystems is a true or false; the default is
# false.
#
# Set to true to ignore pre-frozen file systems during the quiescing operation.
#
# ignoreFrozenFileSystems is Linux only (Not supported on Windows).
#ignoreFrozenFileSystems=false

# execScripts specifies whether to execute scripts as part of the quiescing
# operation. Scripts are executed from the scripts directory along with the
# legacy scripts.
#
# Scripts directory:
# Linux: /etc/vmware-tools/backupScripts.d
# Windows: <Install-Path>\backupScripts.d
#
# Legacy scripts:
# Linux: /usr/sbin/pre-freeze-script and /usr/sbin/post-thaw-script
# Windows: C:\windows\pre-freeze-script.bat and C:\windows\post-thaw-script.bat
#
# On each quiescing operation, scripts are invoked before quiescing and
# either after a quiescing failure or after thawing.
# The first argument passed to each script is
# "freeze", when invoked before quiescing;
# "freezefail", when invoked after a quiescing failure; or
# "thaw", when invoked after thawing.
# When invoked before quiescing, scripts from the directory are invoked in
# alphabetically ascending order; when invoked following a quiescing failure
# or thawing, they are invoked in the reverse order. Any subdirectories are
# ignored.
# Note that the legacy pre-freeze-script is invoked only before quiescing as
# the first script and post-thaw-script is invoked after a quiescing failure
# as well as after thawing as the last script.

#execScripts=true

# Additional argument to be passed to scripts
#scriptArg=

[guestoperations]

# to deactivate all guest ops
#disabled=false

# Whether to use vgauth for guest op authentication
#useVGAuth=true

[autoupgrade]

# The "allow-upgrade" option controls whether automatic upgrades (or reinstalls)
# are allowed.
#allow-upgrade=true

# The autoupgrade plugin is only available for Windows.
# The "allow-add-feature" and "allow-remove-feature" control whether adding
# or removing a feature will be allowed.
# The allow-msi-transforms option controls whether TRANSFORMS property is
# allowed.

#allow-add-feature=true
#allow-remove-feature=true
#allow-msi-transforms=false

[deployPkg]

# to deactivate guest customization
#enable-customization=false

# This "wait-cloudinit-timeout" option controls how long does guest
# customization wait for cloud-init execution done when it detects cloud-init
# is available in guest.
# Guest customization will continue executing as soon as it detects cloud-init
# execution done within this option's value in seconds.
# If cloud-init is still running beyond this option's value in seconds, guest
# customization will continue executing regardless cloud-init execution status.
# Minimum valid value is 0 second, set to 0 to deactivate waiting.
# Maximum valid value is 1800 seconds (30 minutes).
# Default value is 30 seconds.
#wait-cloudinit-timeout=30

[cbhelper]

# The carbonblack helper plugin is only available for Windows.

# User-defined poll interval in seconds. Set to 0 to deactivate polling.
#poll-interval=60

[gueststoreupgrade]

# The guestStoreUpgrade plugin is only available for Windows.

# The policy value is one of the settings listed below.
# off         = no VMware Tools upgrade from GuestStore. Feature is
#               deactivated.
# manual      = (Default) VMware Tools upgrade from GuestStore is
#               manually started.
# powercycle  = VMware Tools upgrade from GuestStore on system
#               power on.

#policy=manual

# Time interval for periodically checking available VMware Tools package
# version in the GuestStore.
# User-defined poll interval in seconds. Set to 0 to deactivate polling.
# Minimum valid value is 900 seconds (15 minutes)
# Default value is 3600 seconds (60 minutes)
#poll-interval=3600

# VMware Tools package version metadata key to specify a VMware Tools
# package version in the GuestStore.
# User-defined key for VMware Tools package version.
# Default value is "vmtools" which points to the latest version of
# VMware Tools package in the GuestStore.
#vmtools-version-key=vmtools

[devicehelper]

# The deviceHelper plugin is only available for Windows.

# Set to true to deactivate the deviceHelper plugin.
#disabled=false

[gitray]

# The gitray plugin is only available for Windows
# with Complete VMTools install or with File
# Introspection Custom install.

# By default the gitray plugin is enabled
# To disable gitray user plugin set
#enabled=false

[giamsi]

# The giamsi plugin for the Windows AntiMalware Scan Interface (AMSI) configuration.

# By default the fileless AMSI is enabled.
# To disable the ASMI plugin
#enabled=false

# Valid values are subject to change with future VMware Tools releases.
# Refer to the tools.conf.example for any changes.

# By default, the maximum client connections supported is 32.
# The values in range are 16<amsi-max-client-connections<64.
# Values lesser than the minimum will use the minimum (16) value.
# Values greater than the maximum will use the maximum (64) value.
#amsi-max-client-connections=24

# By default, the maximum script size supported is 131072 (128kb) bytes
# The range of values supported are 4096<amsi-max-script-size-in-bytes<524288
# Values lesser than the minimum will use the minimum (4096) value.
# Values greater than the maximum will use the maximum (524288) value.
#amsi-max-script-size-in-bytes=262144

[timeSync]

# The timeSync plugin synchronizes guest system time with that of the host.

# The value of disable-all is a true or false; the default is false.
# If true, all time synchronization is disabled.
# If false, one-time synchronization is enabled and periodic synchronization
# is controlled by disable-periodic.
#disable-all=false

# The value of disable-periodic is a true or false; the default is false.
# If true, periodic time synchronization is disabled.
# If false, periodic time synchronization is enabled if disable-all is also
# false.
#disable-periodic=false
