tis-sysinternals-pstools icon

PsTools

Silent install package for PsTools

2.51-6

  • package: tis-sysinternals-pstools
  • name: PsTools
  • version: 2.51-6
  • categories: System and network
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
  • editor: Microsoft Corporation
  • licence: https://docs.microsoft.com/en-us/sysinternals/license-terms
  • locale: all
  • target_os: windows
  • impacted_process: PsExec,psfile,PsGetsid,PsInfo,pskill,pslist,PsLoggedon,psloglist,pspasswd,psping,PsService,psshutdown,pssuspend,PsExec,PsExec64,psfile,psfile64,PsGetsid,PsGetsid64,PsInfo,PsInfo64,pskill,pskill64,pslist,pslist64,PsLoggedon,PsLoggedon64,psloglist,psloglist64,pspasswd,pspasswd64,psping,psping64,PsService,PsService64,psshutdown,psshutdown64,pssuspend,pssuspend64
  • architecture: all
  • signature_date:
  • size: 5.29 Mo
  • installed_size: 9.85 Mo
  • homepage : https://docs.microsoft.com/sysinternals/downloads/pstools
  • conflicts :

package           : tis-sysinternals-pstools
version           : 2.51-6
architecture      : all
section           : base
priority          : optional
name              : PsTools
categories        : System and network
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
description       : Command-line utilities for listing the processes running on local or remote computers, running processes, rebooting computers, and more.
depends           : 
conflicts         : tis-ms-pstools
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.1
sources           : https://docs.microsoft.com/sysinternals/downloads/pstools
installed_size    : 9846784
impacted_process  : PsExec,psfile,PsGetsid,PsInfo,pskill,pslist,PsLoggedon,psloglist,pspasswd,psping,PsService,psshutdown,pssuspend,PsExec,PsExec64,psfile,psfile64,PsGetsid,PsGetsid64,PsInfo,PsInfo64,pskill,pskill64,pslist,pslist64,PsLoggedon,PsLoggedon64,psloglist,psloglist64,pspasswd,pspasswd64,psping,psping64,PsService,PsService64,psshutdown,psshutdown64,pssuspend,pssuspend64
description_fr    : Utilitaires de ligne de commande permettant de dresser la liste des processus en cours sur des ordinateurs locaux ou distants, d'exécuter des processus, de redémarrer des ordinateurs, etc
description_pl    : Narzędzia wiersza poleceń do wyświetlania listy procesów uruchomionych na komputerach lokalnych lub zdalnych, uruchamiania procesów, restartowania komputerów i innych
description_de    : Befehlszeilen-Dienstprogramme zum Auflisten der auf lokalen oder entfernten Computern laufenden Prozesse, zum Ausführen von Prozessen, zum Neustart von Computern und mehr
description_es    : Utilidades de línea de comandos para listar los procesos que se ejecutan en ordenadores locales o remotos, ejecutar procesos, reiniciar ordenadores, etc
description_pt    : Utilitários de linha de comando para listar os processos em execução em computadores locais ou remotos, processos em execução, reiniciar computadores, e muito mais
description_it    : Utilità a riga di comando per elencare i processi in esecuzione su computer locali o remoti, eseguire processi, riavviare computer e altro ancora
description_nl    : Commandoregelhulpprogramma's voor het oplijsten van de processen die op lokale of externe computers draaien, het uitvoeren van processen, het herstarten van computers en meer
description_ru    : Утилиты командной строки для составления списка процессов, запущенных на локальном или удаленном компьютере, запуска процессов, перезагрузки компьютеров и т.д
audit_schedule    : 
editor            : Microsoft Corporation
keywords          : 
licence           : https://docs.microsoft.com/en-us/sysinternals/license-terms
homepage          : https://docs.microsoft.com/sysinternals/downloads/pstools
package_uuid      : 671045e6-edd7-43fd-af92-fff8f2472e3b
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : db286f658156b91f0d39798bd5e7f3b776ab2fb330070894323afa6af77a8b10
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : DSfbPgFL9O0XupxQnFs530325D45/eRTQesRYsXhXSgng8E0hbMSdL+vSteO97457EWXmsdtclgTsxuyYmohFDB9XK73G0Wbud+8W1ywHTGC+SBozYpy6iSlCvEXazDtlFQyUqnmt3MSKhMGUJMDeD61HL1Uwng5kSXu4WziEGsM6VsRY5ywc6POVwNHpSkWFJL+D1ZGWh1pgFOZlM+NsbeJ3Of/JWk9OnY0WMevJbEp0N2yK+45+H7Re6EfgQzyjCA4WOfVlcAVPWQq9trk7HIcfgph3hdszS72m9bCroz+eTe9hKe/jGj0wlP2dK9tv3g9VEkk+/nr/8YBbRlSjw==
signature_date    : 2023-10-21T09:00:14.332553
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

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
['PsExec', 'psfile', 'PsGetsid', 'PsInfo', 'pskill', 'pslist', 'PsLoggedon', 'psloglist', 'pspasswd', 'psping', 'PsService', 'psshutdown', 'pssuspend']

    # Accepting EULA
    tools_list = []
    for tool in glob.glob(makepath(app_dir, '*.exe')):
        tool_name = tool.split('\\')[-1].split('.exe')[0]
        if not '64' in tool_name:
            tools_list.append(tool_name)

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = "PSTools"
app_name = "PSTools"
app_dir = makepath(programfiles32, app_name)
tools_list = [
    "PsExec",
    "psfile",
    "PsGetsid",
    "PsInfo",
    "pskill",
    "pslist",
    "PsLoggedon",
    "psloglist",
    "pspasswd",
    "psping",
    "PsService",
    "psshutdown",
    "pssuspend",
]


def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*%s*.zip" % bin_contains)[0]

    # Getting installed software version
    if isdir(app_dir):
        installed_version = installed_softwares(app_name)[0]["version"]
    else:
        installed_version = None

    # Installing software
    print("Installing: %s" % app_name)
    if installed_version is None or Version(installed_version) < Version(package_version) or force:
        killalltasks(control.get_impacted_process_list())
        if isdir(app_dir):
            remove_tree(app_dir)
        mkdirs(app_dir)
        print("Extracting: %s to: %s" % (bin_name, app_dir))
        unzip(bin_name, app_dir)

        # Adding software to "list-registry"
        register_windows_uninstall(control, win64app=False)
    else:
        print("%s (%s) already installed. Skipping" % (app_name, package_version))

    # Adding folder to PATH
    add_to_system_path(app_dir)

    # Accepting EULA
    print("Accepting: %s EULA" % app_name)
    for tool_name in tools_list:
        for sid in [".DEFAULT", "S-1-5-18", "S-1-5-19", "S-1-5-20"]:
            if not reg_value_exists(HKEY_USERS, r"%s\SOFTWARE\Sysinternals\%s" % (sid, tool_name), "EulaAccepted"):
                registry_set(HKEY_USERS, r"%s\SOFTWARE\Sysinternals\%s" % (sid, tool_name), "EulaAccepted", 1)


def session_setup():
    print("Accepting: %s EULA" % app_name)
    for tool_name in tools_list:
        if not reg_value_exists(HKEY_CURRENT_USER, r"SOFTWARE\Sysinternals\%s" % tool_name, "EulaAccepted"):
            registry_set(HKEY_CURRENT_USER, r"SOFTWARE\Sysinternals\%s" % tool_name, "EulaAccepted", 1)


def uninstall():
    # Uninstalling software
    killalltasks(control.get_impacted_process_list())
    if isdir(app_dir):
        remove_tree(app_dir)
    unregister_uninstall(app_name)

    # Removing folder from PATH
    remove_from_system_path(app_dir)

    print("Removing: %s EULA consent" % app_name)
    for tool_name in tools_list:
        for sid in [".DEFAULT", "S-1-5-18", "S-1-5-19", "S-1-5-20"]:
            if reg_key_exists(HKEY_USERS, r"%s\SOFTWARE\Sysinternals\%s" % (sid, tool_name)):
                registry_deletekey(HKEY_USERS, r"%s\SOFTWARE\Sysinternals" % (sid), tool_name)


def audit():
    # Auditing software
    print("Auditing: %s" % control.package)
    if isdir(app_dir):
        print("%s present" % app_dir)
        return "OK"
    else:
        print("%s absent" % app_dir)
        return "ERROR"

# -*- coding: utf-8 -*-
from setuphelpers import *


def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    url = "https://docs.microsoft.com/sysinternals/downloads/pstools"
    download_url = "https://download.sysinternals.com/files/PSTools.zip"
    latest_bin = download_url.split("/")[-1]

    # Downloading latest binaries
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
        unzip(latest_bin)

        # Getting version
        version_file = "PSTools\\psversion.txt"
        with open(version_file, "r") as read_file:
            version = read_file.read().split("\n")[0].split(": ")[-1]

        remove_tree(latest_bin.split(".")[0])

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

    # Validating update-package-sources
    return result

e115a30dd4953df57d4cee4382119f1247feb9573fb7634b710a0ce6456e2f1b : setup.py
a9ca77dfe03ce15004157727bb43ba66f00ceb215362c9b3d199f000edaa8d61 : PSTools.zip
41467e7954112c775967453b504053ba8e2cfdc1913fc1ebcf5435029f77e019 : update_package.py
db286f658156b91f0d39798bd5e7f3b776ab2fb330070894323afa6af77a8b10 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
5a691b0ad7ef2c9034f8a6713f2aaab53bf73e543902c9837d9cdc9ee3b71ed8 : luti.json
24e6256a74704d34414a914354e1788eafd8ee2382aba4bc85a539d83b921b74 : WAPT/control