PsTools
Silent install package for PsTools
2.53-7
System and network
System and network
- package: tis-sysinternals-pstools
- name: PsTools
- version: 2.53-7
- categories: System and network
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON,Flavien SCHELFAUT
- editor: Microsoft Corporation
- licence: https://docs.microsoft.com/sysinternals/license-terms,wapt_public
- locale: all
- target_os: windows
- impacted_process: 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.16 Mo
- homepage : https://learn.microsoft.com/sysinternals/downloads/pstools
- conflicts :
package : tis-sysinternals-pstools
version : 2.53-7
architecture : all
section : base
priority : optional
name : PsTools
categories : System and network
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON,Flavien SCHELFAUT
description : PsTools is a suite of command-line utilities for listing the processes running on local or remote computers, running processes remotely, rebooting computers and more
depends :
conflicts : tis-ms-pstools
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.3
sources : https://learn.microsoft.com/sysinternals/downloads/pstools
installed_size :
impacted_process : 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 : PsTools est une suite d'utilitaires en ligne de commande permettant de lister les processus en cours sur des ordinateurs locaux ou distants, d'exécuter des processus à distance, de redémarrer des ordinateurs et plus encore
description_pl : PsTools to zestaw narzędzi wiersza poleceń do wyświetlania procesów uruchomionych na komputerach lokalnych lub zdalnych, zdalnego uruchamiania procesów, ponownego uruchamiania komputerów i nie tylko
description_de : PsTools ist eine Sammlung von Befehlszeilenprogrammen zum Auflisten der auf lokalen oder entfernten Computern laufenden Prozesse, zum Ausführen von Prozessen aus der Ferne, zum Neustarten von Computern und mehr
description_es : PsTools es un conjunto de utilidades de línea de comandos para listar los procesos que se ejecutan en equipos locales o remotos, ejecutar procesos de forma remota, reiniciar equipos y mucho más
description_pt : O PsTools é um conjunto de utilitários de linha de comandos para listar os processos em execução em computadores locais ou remotos, executar processos remotamente, reiniciar computadores e muito mais
description_it : PsTools è una suite di utilità a riga di comando per elencare i processi in esecuzione su computer locali o remoti, eseguire processi in remoto, riavviare computer e altro ancora
description_nl : PsTools is een verzameling opdrachtregelprogramma's voor het weergeven van de processen die op lokale of externe computers draaien, het op afstand uitvoeren van processen, het herstarten van computers en meer
description_ru : PsTools представляет собой набор утилит командной строки для вывода списка процессов, запущенных на локальных или удаленных компьютерах, удаленного запуска процессов, перезагрузки компьютеров и многого другого
audit_schedule :
editor : Microsoft Corporation
keywords : pstools,sysinternals,psexec,pskill,pslist,psinfo,remote,process,command-line,administration
licence : https://docs.microsoft.com/sysinternals/license-terms,wapt_public
homepage : https://learn.microsoft.com/sysinternals/downloads/pstools
package_uuid : ebb8ce1c-7eb5-4e95-b4d5-0d19e192ddb8
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version : 6.2
max_os_version :
icon_sha256sum : db286f658156b91f0d39798bd5e7f3b776ab2fb330070894323afa6af77a8b10
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2026-10-05T11:28:39.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 : pbkNSooEhCgrr3F7H9CB9xWoYsu+G9tk5ullja7n7jka7E6INM8yNfxmd6+mLE18V73zUgC6JA5hGTQJMkKB5DyVXC6eteA2sMLTT3n8fbBDP3/uuv+0XjlVbPhv4v2OrJr+iv5iayMy3JGnMxVJ4CzJR1rjSnupfkc4DSZD0kU7KVau+sSKFeKAwh00J/l3ay4o+QdLxs+qoiHxxXV7kZL4DG6ft1eGvX76PA+hkS2uMpyiUOHHbal2/WFRRI/mOiaQQL+Q9zcftxIe9j57YmesA37tn8iDZwqZLkieL4uVuJC/1umgKReI9pTGSZ8bAWQU2Utk1ut0gVMKVBme6g==
# -*- coding: utf-8 -*-
from setuphelpers import *
app_name = "PSTools"
app_dir = makepath(programfiles32, app_name)
version_file = makepath(app_dir, "psversion.txt")
tools_list = [
"PsExec",
"psfile",
"PsGetsid",
"PsInfo",
"pskill",
"pslist",
"PsLoggedon",
"psloglist",
"pspasswd",
"psping",
"PsService",
"psshutdown",
"pssuspend",
]
eula_sids = [".DEFAULT", "S-1-5-18", "S-1-5-19", "S-1-5-20"]
# The suite version is only written in psversion.txt, each exe has its own version
installed_version = ""
if isfile(version_file):
with open(version_file, "r") as f:
installed_version = f.read().split(":")[-1].strip()
def install():
bin_name = glob.glob("PSTools.zip")[0]
# Uninstall older version before new one
if installed_version and Version(installed_version) < Version(control.get_software_version()):
uninstall()
# Remove the uninstall key registered by older package revisions
if installed_softwares(uninstallkey=app_name):
unregister_uninstall(app_name, win64app=False)
mkdirs(app_dir)
print(f"Extracting: {bin_name} to: {app_dir}")
unzip(bin_name, app_dir)
add_to_system_path(app_dir)
print(f"Accepting: {app_name} EULA")
for tool_name in tools_list:
for sid in eula_sids:
registry_set(HKEY_USERS, rf"{sid}\SOFTWARE\Sysinternals\{tool_name}", "EulaAccepted", 1)
def session_setup():
print(f"Accepting: {app_name} EULA")
for tool_name in tools_list:
if not reg_value_exists(HKEY_CURRENT_USER, rf"SOFTWARE\Sysinternals\{tool_name}", "EulaAccepted"):
registry_set(HKEY_CURRENT_USER, rf"SOFTWARE\Sysinternals\{tool_name}", "EulaAccepted", 1)
def audit():
audit_status = "OK"
if Version(installed_version) < Version(control.get_software_version()):
print(f"{app_name} is installed in version ({installed_version}) instead of ({control.get_software_version()})")
audit_status = "WARNING"
elif isdir(app_dir) and not dir_is_empty(app_dir):
print(f"{app_name} ({installed_version}) is installed")
audit_status = "OK"
else:
print(f"{app_name} is not installed")
audit_status = "ERROR"
return audit_status
def uninstall():
killalltasks(ensure_list(control.impacted_process))
if isdir(app_dir):
remove_tree(app_dir)
remove_from_system_path(app_dir)
print(f"Removing: {app_name} EULA consent")
for tool_name in tools_list:
for sid in eula_sids:
if reg_key_exists(HKEY_USERS, rf"{sid}\SOFTWARE\Sysinternals\{tool_name}"):
registry_deletekey(HKEY_USERS, rf"{sid}\SOFTWARE\Sysinternals", tool_name)
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import waptlicences
def update_package():
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
app_name = control.name
download_url = "https://download.sysinternals.com/files/PSTools.zip"
latest_bin = download_url.split("/")[-1]
unzipped_dir = latest_bin.rsplit(".", 1)[0]
if isfile(latest_bin):
remove_file(latest_bin)
print(f"Downloading: {latest_bin}")
wget(download_url, latest_bin, proxies=proxies)
# The suite version is only available inside the archive
if isdir(unzipped_dir):
remove_tree(unzipped_dir)
unzip(latest_bin, unzipped_dir)
expected_issuer = "Microsoft Corporation"
sign_name = waptlicences.check_exe_signing_certificate(makepath(unzipped_dir, "PsExec.exe"))[0]
if sign_name != expected_issuer:
error(f"Bad issuer {sign_name} != {expected_issuer}")
with open(makepath(unzipped_dir, "psversion.txt"), "r") as f:
version = f.read().split(":")[-1].strip()
remove_tree(unzipped_dir)
print(f"Latest {app_name} version is: {version}")
if Version(version) > Version(control.get_software_version()):
print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
package_updated = True
else:
print(f"Software version up-to-date ({Version(version)})")
control.set_software_version(version)
control.save_control_to_wapt()
return package_updated
2b10b3d9dae0403b06d90b13bfb53e723a8b14a788f78cdfd43a445d8991415e : PSTools.zip
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
69a6add8e37a2a9ad1d6be8deb67c359f210776d3ddb379634a678626a73762b : WAPT/control
db286f658156b91f0d39798bd5e7f3b776ab2fb330070894323afa6af77a8b10 : WAPT/icon.png
54f533847727cce74510c391c45eedb01c17d1df81800d73754c408cf8c7e606 : luti.json
94c0b8b48d7aa874008b198c926aa5ec354dff2957d56987f14aa027e9e51a5a : setup.py
71ad317afc6f79da2050833faf407ae15e48c53e3a8bdae5ddd7803d75bcf9dc : update_package.py