tis-dell-command-update-uwp

5.4.0-18
Dell Command | Update is a stand-alone application, for commercial client computers, that provides updates for system software that is released by Dell. This application simplifies the BIOS, firmware, driver, and application update experience for Dell commercial client hardware
4700 downloads
Download
See build result See VirusTotal scan
tis-dell-command-update-uwp icon
  • package : tis-dell-command-update-uwp
  • name : Dell Command Update UWP
  • version : 5.4.0-18
  • categories : Drivers
  • maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ
  • installed_size :
  • editor : Dell Inc.
  • licence : proprietary_free,wapt_public
  • signature_date : 2024-09-25T14:03:16.000000
  • size : 22.30 Mo
  • locale : all
  • target_os : windows
  • impacted_process : DellCommandUpdate
  • architecture : x64
  • Homepage : https://www.dell.com/support/kbdoc/000177325/dell-command-update
  • Depends :
  • Conflicts :
package           : tis-dell-command-update-uwp
version           : 5.4.0-18
architecture      : x64
section           : base
priority          : optional
name              : Dell Command Update UWP
categories        : Drivers
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : Dell Command | Update is a stand-alone application, for commercial client computers, that provides updates for system software that is released by Dell. This application simplifies the BIOS, firmware, driver, and application update experience for Dell commercial client hardware
depends           : tis-dotnetfx
conflicts         : tis-dell-command-update
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.dell.com/support/kbdoc/000177325/dell-command-update
installed_size    : 
impacted_process  : DellCommandUpdate
description_fr    : Dell Command | Update est une application autonome, pour les ordinateurs clients commerciaux, qui fournit des mises à jour pour les logiciels système publiés par Dell. Cette application simplifie la mise à jour du BIOS, du micrologiciel, des pilotes et des applications pour le matériel client commercial Dell
description_pl    : Dell Command | Update to samodzielna aplikacja dla komercyjnych komputerów klienckich, która zapewnia aktualizacje oprogramowania systemowego wydanego przez firmę Dell. Ta aplikacja upraszcza aktualizację systemu BIOS, oprogramowania układowego, sterowników i aplikacji dla komercyjnego sprzętu klienckiego firmy Dell
description_de    : Dell Command | Update ist eine eigenständige Anwendung für kommerzielle Client-Computer, die Updates für die von Dell freigegebene Systemsoftware bereitstellt. Diese Anwendung vereinfacht die BIOS-, Firmware-, Treiber- und Anwendungsaktualisierung für kommerzielle Dell-Client-Hardware
description_es    : Dell Command | Update es una aplicación independiente, para ordenadores cliente comerciales, que proporciona actualizaciones para el software del sistema publicado por Dell. Esta aplicación simplifica la experiencia de actualización de BIOS, firmware, controladores y aplicaciones para el hardware de cliente comercial de Dell
description_pt    : O Dell Command | Update é uma aplicação autónoma, para computadores clientes comerciais, que fornece actualizações para software de sistema lançado pela Dell. Este aplicativo simplifica a experiência de atualização de BIOS, firmware, driver e aplicativo para hardware de cliente comercial da Dell
description_it    : Dell Command | Update è un'applicazione autonoma, per computer client commerciali, che fornisce aggiornamenti per il software di sistema rilasciato da Dell. Questa applicazione semplifica l'esperienza di aggiornamento di BIOS, firmware, driver e applicazioni per l'hardware dei client commerciali Dell
description_nl    : Dell Command Update is een standalone toepassing voor commerciële clientcomputers die updates biedt voor systeemsoftware die is uitgebracht door Dell. Deze toepassing vereenvoudigt het bijwerken van BIOS, firmware, drivers en toepassingen voor commerciële clienthardware van Dell
description_ru    : Dell Command | Update - это отдельное приложение для коммерческих клиентских компьютеров, которое обеспечивает обновление системного программного обеспечения, выпускаемого компанией Dell. Это приложение упрощает процесс обновления BIOS, микропрограммного обеспечения, драйверов и приложений для коммерческого клиентского оборудования Dell
audit_schedule    : 
editor            : Dell Inc.
keywords          : dell,command,update,application,commercial,client,computers,provides,updates,system,software,simplifies,bios,firmware,driver
licence           : proprietary_free,wapt_public
homepage          : https://www.dell.com/support/kbdoc/000177325/dell-command-update
package_uuid      : 2e280512-caf0-4bde-a828-ffbef3670cad
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.dell.com/support/manuals/command-update/dellcommandupdate_rn/what%E2%80%99s-new-in-dell-command-%7C-update-version-5.0?guid=guid-b03a61b2-3232-402e-8635-2a3e1d5702e6
min_os_version    : 10.0
max_os_version    : 
icon_sha256sum    : 84a8def6f2fe8fbc0bb40575f4f18edd62853169caf556f7290da90712c324b4
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2024-09-25T14:03:16.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : lSiSeioWjL4WZV4Onpdy83jajAZrt4ba5Y6HUL3GyYMTSwRKaD0zHXTW/yuxk1LSqVyJBfOF+RJPOcyKp0aN91WjLE70qV9XdE1+qC5f0SoAgakY6kZsEfdlDDJHLER7vN7LYAH37RqmnmhqkdcxAVcvyB0JzHrqBgQR9fwLTWgoF4NImyJOx7sfebQHakfNwmRJ/8ZPOjwsLC7jc4wZenVAUt32MY1sYn4bqgFedxi81AmHImRzMwbqYy354mGdotMjd+jK5s9D/PDD8mFn2rIf8WAlfb9hIIukg0erKhc/KNF4pCyVQ10Js4jBN1HfHKJrh4Cvyn5Q0pGeNduu/A==
# -*- coding: utf-8 -*-
from setuphelpers import *
import time

r"""
Update Package: 0XNVXA00
Dell Command | Update Windows Universal Application, 5.2.0, A00

General Usage: 
Dell-Command-Update-Windows-Universal-Application_0XNVX_WIN_5.2.0_A00.exe [/<option1>[=<value1>]] [/<option2>[=<value2>]]...
See listing below for <option> and <value> information.

NOTE:If the folder name contains space, double quotes should be given for folder name
EXAMPLE:/s /e="c:\Folder Name"

Option - Description:
---------------------
(none) - Display of graphical user interface for guided installation/update or extraction.

/? or /h - Displays this  Update Package usage information.

/s - Suppresses all graphical user interfaces of the  Update Package.

/e=<path> - Extraction of update contents to a folder.
(NOTE: Requires /s option)

/passthrough ... - (Advanced) Sends all text following the /passthrough option directly to the vendor install software of the  Update Package. This mode suppresses any  provided graphical user interfaces, but not necessarily those of the vendor software.

/factoryinstall /passthrough (vendor command line parameter) - (Advanced) (commnad line parameters) will be passed to vendor installer directly without parsing MUP.xml. Post installation, If the vendor installer returns REBOOT_REQUIRED or REBOOT_UPDATE_PENDING, it will be turned to SUCCESS.

/l=<path> - Define a specific path for the  Update Package log file.
(NOTE: This option can NOT be used in combination with /passthrough)


Example(s):
---------------------
Update the system silently
Dell-Command-Update-Windows-Universal-Application_0XNVX_WIN_5.2.0_A00.exe /s

Extract the update contents to the folder C:\mydir\
Dell-Command-Update-Windows-Universal-Application_0XNVX_WIN_5.2.0_A00.exe /s /e=C:\mydir

Pass command line arguments directly to vendor installer.
Turn the return code to success if required
Dell-Command-Update-Windows-Universal-Application_0XNVX_WIN_5.2.0_A00.exe /factoryinstall /passthrough D:\Sample.xml C:\log\FI.log


Change from the default log location to C:\my path with spaces\log.txt
Dell-Command-Update-Windows-Universal-Application_0XNVX_WIN_5.2.0_A00.exe /l="C:\my path with spaces\log.txt"


https://www.dell.com/support/manuals/en-us/command-update/dellcommandupdate_ug/silent-install?guid=guid-72c8f511-c7a5-4729-bf86-f92837841289&lang=en-us

"""


def install():
    bin_name = glob.glob("Dell-Command-Update-Windows-Universal-Application_*.EXE")[0]
    try:
        # Installing the software
        install_exe_if_needed(
            bin_name,
            silentflags=rf'/s /factoryinstall /passthrough /l="C:\Windows\Temp\%s"' % bin_name + ".log",
            name="Dell Command | Update for Windows Universal",
            min_version=control.get_software_version(),
            timeout=900,
        )

    except Exception as e:
        if e.returncode == 4:
            print(e)
            error(f"{control.name} cannot be installed because this PC is not a Dell Compatible System, please check: {control.sources}")
        else:
            error(e)

    # Disabling telemetry
    registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General", "UserConsentDefault", 0)
    registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG", "ShowSetupPopup", 0)

    # Download updates (notify when ready)
    registry_set(
        HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule", "AutomationMode", "ScanDownloadNotify"
    )
    registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule", "ScheduleMode", "Auto")

    # # Manual updates only
    # registry_set(
    #     HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule", "ScheduleMode", "ManualUpdates"
    # )

    # # Disable notification
    # registry_set(HKEY_LOCAL_MACHINE, r"SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule", "DisableNotification", 1)


def audit():
    audit_status = "OK"
    service_name = "DellClientManagementService"
    service_start_mode = get_service_start_mode(service_name)
    
    if not service_installed(service_name):
        print(f"{service_name} service does not exist.")
        audit_status = "ERROR"
    else:
        if service_start_mode in ["Disabled", "Manual"]:
            set_service_start_mode(service_name, "Auto")
        if not service_is_running(service_name):
            service_start(service_name)
        time.sleep(5)
        if not service_is_running(service_name):
            print(f"{service_name} service is not running.")
            audit_status = "WARNING"
        else:
            print(f"{service_name} service is working properly.")

            #write useful info in database
            catalog_timestamp = registry_readstring(HKEY_LOCAL_MACHINE,fr'SOFTWARE\Dell\UpdateService\Service','CatalogTimestamp')
            lastcheck_timestamp = registry_readstring(HKEY_LOCAL_MACHINE,fr'SOFTWARE\Dell\UpdateService\Service','LastCheckTimestamp')
            lastupdate_timestamp = registry_readstring(HKEY_LOCAL_MACHINE,fr'SOFTWARE\Dell\UpdateService\Service','LastUpdateTimestamp')
            pending_install = registry_readstring(HKEY_LOCAL_MACHINE,fr'SOFTWARE\Dell\UpdateService\Service\UpdateScheduler','PendingInstallPackages')
            info_list = ['CatalogTimestamp','LastCheckTimestamp','LastUpdateTimestamp','PendingInstallPackages']
            result_list = [catalog_timestamp,lastcheck_timestamp,lastupdate_timestamp,pending_install]
            audit_dict = dict(zip(info_list,result_list))
            print(audit_dict)
            WAPT.write_audit_data_if_changed("dell-command-update", "dell-command-update", audit_dict)


            audit_status = "OK"
            
    return audit_status


# def uninstall():
#     # Uninstalling the software
#     print("Uninstalling: %s" % control.package)
#     remove_appx("DellInc.DellCommandUpdate")
# -*- coding: utf-8 -*-
from setuphelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    url = "https://www.dell.com/support/kbdoc/en-us/000177325/dell-command-update"

    # Getting latest download link from official sources
    print("URL used is: %s" % url)
    for bs_search in bs_find_all(url, "a", "target", "_blank", proxies=proxies, timeout=10, verify="_.dell.com.crt"):
        if "Universal\xa0Windows\xa0Platform" in bs_search.text or "Update Windows Universal Application" in bs_search.text:
            download_url = bs_search["href"]
            break

    # Getting latest version from official sources
    print("URL used is: %s" % download_url)
    for bs_search in bs_find_all(download_url, "a", "class", "dellmetrics-driverdownloads", proxies=proxies, timeout=10, verify="_.dell.com.crt"):
        if "Télécharger" in bs_search.text:
            version = bs_search["href"].split("_")[-2]
            latest_bin = bs_search["href"].split("/")[-1]
            download_url = bs_search["href"]
            break

    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies, verify_cert="content-cdn.dell.com.crt")
    else:
        print("Binary is present: %s" % latest_bin)

    # Deleting outdated binaries
    remove_outdated_binaries(latest_bin)

    # Checking version from file
    if get_os_name() == "Windows" and "windows" in control.target_os.lower():
        version_from_file = get_version_from_binary(latest_bin)
        if Version(version_from_file, 4) == Version(version, 4):
            print(f"INFO: Binary file version ({version_from_file}) corresponds to online version ({version})")
        else:
            error(f"ERROR: Binary file version ({version_from_file}) do NOT corresponds to online version ({version})")

    # Changing version of the package
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating or not update-package-sources
    return package_updated
4034ffe101ba6722406ce1e2b43124c91603bedb60fa18028d4165caf74ab47c : Dell-Command-Update-Windows-Universal-Application_9M35M_WIN_5.4.0_A00.EXE
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
718328b648a06f28d3d5f05019e2064611e7a8d64958f68e8ddd66e3ce2afd33 : WAPT/changelog.txt
debcfdb87db37ffb4ac639212d5028b17e86175f666a7059c3aaef9291220272 : WAPT/control
84a8def6f2fe8fbc0bb40575f4f18edd62853169caf556f7290da90712c324b4 : WAPT/icon.png
7596cc38a2f3211a89bbea6ac784faa5ae36371705beff1f415d30ebe0db1b61 : _.dell.com.crt
347e8e771c81edb550e1b64ca1ca985189364e5e1e4481e0a280bfdb723609e5 : content-cdn.dell.com.crt
089e245e521358497748834ddf5ea6f0155e8768442047c90f5f500c909aea2c : luti.json
27c6734dcf4e5c6a50e199c326a4a9446e73e220cabb0910b6d671f8f853fb9f : setup.py
e36715056f5cd7dc9e1f5977002886f3f9987e4c2bb76825b60d3f526d70678c : update_package.py
-12
===
error instead of a print on install on incompatible systems
improve package and 
add SSL certs
add help command


-10
===
print that Dell Command Update UWP can only be installed on a Dell System.
now audit DellClientManagementService service.