diff --git a/DataSourceVMwareGuestInfo.py b/DataSourceVMwareGuestInfo.py
index 9fe83ac..3cf3450 100644
--- a/DataSourceVMwareGuestInfo.py
+++ b/DataSourceVMwareGuestInfo.py
@@ -38,7 +38,7 @@
 
 LOG = logging.getLogger(__name__)
 NOVAL = "No value found"
-VMTOOLSD = find_executable("vmtoolsd")
+VMWARE_RPCTOOL = find_executable("vmware-rpctool")
 VMX_GUESTINFO = "VMX_GUESTINFO"
 
 
@@ -94,7 +94,7 @@
     def __init__(self, sys_cfg, distro, paths, ud_proc=None):
         sources.DataSource.__init__(self, sys_cfg, distro, paths, ud_proc)
         if not get_data_access_method():
-            LOG.error("Failed to find vmtoolsd")
+            LOG.error("Failed to find vmware-rpctool")
 
     def get_data(self):
         """
@@ -107,7 +107,7 @@
         such as calling persist_instance_data.
         """
         if not get_data_access_method():
-            LOG.error("vmtoolsd is required to fetch guestinfo value")
+            LOG.error("vmware-rpctool is required to fetch guestinfo value")
             return False
 
         # Get the metadata.
@@ -245,10 +245,10 @@
         else:
             return val
 
-    if data_access_method == VMTOOLSD:
+    if data_access_method == VMWARE_RPCTOOL:
         try:
             (stdout, stderr) = util.subp(
-                [VMTOOLSD, "--cmd", "info-get guestinfo." + key])
+                [VMWARE_RPCTOOL, "info-get guestinfo." + key])
             if stderr == NOVAL:
                 LOG.debug("No value found for key %s", key)
             elif not stdout:
@@ -517,8 +517,8 @@
 def get_data_access_method():
     if os.environ.get(VMX_GUESTINFO, ""):
         return VMX_GUESTINFO
-    if VMTOOLSD:
-        return VMTOOLSD
+    if VMWARE_RPCTOOL:
+        return VMWARE_RPCTOOL
     return None
 
 
diff --git a/dscheck_VMwareGuestInfo.sh b/dscheck_VMwareGuestInfo.sh
index f9d6e87..e226b9f 100644
--- a/dscheck_VMwareGuestInfo.sh
+++ b/dscheck_VMwareGuestInfo.sh
@@ -41,13 +41,13 @@
   fi
 fi
 
-if ! command -v vmtoolsd >/dev/null 2>&1; then
+if ! command -v vmware-rpctool >/dev/null 2>&1; then
   exit 1
 fi
 
-if { vmtoolsd --cmd "info-get guestinfo.metadata" || \
-     vmtoolsd --cmd "info-get guestinfo.userdata" || \
-     vmtoolsd --cmd "info-get guestinfo.vendordata"; } >/dev/null 2>&1; then
+if { vmware-rpctool "info-get guestinfo.metadata" || \
+     vmware-rpctool "info-get guestinfo.userdata" || \
+     vmware-rpctool "info-get guestinfo.vendordata"; } >/dev/null 2>&1; then
    exit 0
 fi
 
