tis-powershell icon

PowerShell

Paquet d'installation silencieuse pour PowerShell

7.6.4-23
System and network
Development
System and network
Development

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-powershell
  • name: PowerShell
  • version: 7.6.4-23
  • categories: System and network,Development
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: Microsoft
  • licence: MIT
  • locale: all
  • target_os: windows
  • impacted_process: pwsh
  • architecture: x64
  • signature_date:
  • size: 115.52 Mo
  • installed_size: 270.17 Mo
  • homepage : https://docs.microsoft.com/powershell/

package           : tis-powershell
version           : 7.6.4-23
architecture      : x64
section           : base
priority          : optional
name              : PowerShell
categories        : System and network,Development
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : PowerShell is an automation and configuration tool/framework. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.1
sources           : https://github.com/PowerShell/PowerShell/releases
installed_size    : 270172160
impacted_process  : pwsh
description_fr    : PowerShell est un outil/framework d'automatisation et de configuration. Il comprend un shell de ligne de commande, un langage de script associé et un framework pour le traitement des cmdlets
description_pl    : PowerShell to narzędzie/framework do automatyzacji i konfiguracji. Zawiera powłokę wiersza poleceń, powiązany język skryptowy i ramy do przetwarzania cmdletów
description_de    : PowerShell ist ein Automatisierungs- und Konfigurationstool/Framework. Es umfasst eine Befehlszeilen-Shell, eine zugehörige Skriptsprache und ein Framework für die Verarbeitung von Cmdlets
description_es    : PowerShell es una herramienta/marco de automatización y configuración. Incluye un shell de línea de comandos, un lenguaje de scripting asociado y un marco para procesar cmdlets
description_pt    : PowerShell é uma ferramenta/quadro de automação e configuração. Inclui uma shell de linha de comando, uma linguagem de scripting associada e uma estrutura para processar cmdlets
description_it    : PowerShell è uno strumento/framework di automazione e configurazione. Include una shell a riga di comando, un linguaggio di scripting associato e un framework per l'elaborazione di cmdlet
description_nl    : PowerShell is een tool/framework voor automatisering en configuratie. Het omvat een commandoregel, een bijbehorende scripttaal en een raamwerk voor het verwerken van cmdlets
description_ru    : PowerShell - это инструмент/фреймворк автоматизации и конфигурирования. Он включает в себя оболочку командной строки, соответствующий язык сценариев и структуру для обработки команд
audit_schedule    : 
editor            : Microsoft
keywords          : powershell,power,shell,core,powershell6,powershell7
licence           : MIT
homepage          : https://docs.microsoft.com/powershell/
package_uuid      : 5d403118-d8e0-4979-93a7-9a6e88ecd468
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/PowerShell/PowerShell/tree/master/CHANGELOG
min_os_version    : 6.3
max_os_version    : 
icon_sha256sum    : f6328cb3e50d5a2c14f663481de0ea43f9712014ccd430db91c6b4dee2fb07ba
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-07-21T02:11:24.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         : ThFAc74qyYQPPowBKR5d/84TuhlrCfZsLCYNppvyeE+di6NqMdivRrRnN+0eMsHL5CbpEnYvRxALDHcZc1lbfJa/48s6+k1Gksnu5lY6Hijz+mEzIrAkKIztgOuVi9hKl/NCn6rOk21HBlEcY3ihrFnYE8Ic7viDFdyrW6OTIWERm4dCBhOS2a/MpdW1ni1H1/B761+OKgPDRwLwqb3EthW1J9brzEXIOGj4+UQB0UWbZ5SsJapeq/RfzBQ5hBv9xAxmeH13knQTDURdeLCLI/XK4uRt4iwvMKRTKDb0xcpdMBac7ynL+tV5dzLe6yL1WMDKhUm6vZdWYpn6oiRHcA==

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

# Installation procedure: https://docs.microsoft.com/powershell/scripting/install/installing-powershell-on-windows
# silent_args = 'ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=0 REGISTER_MANIFEST=0 ENABLE_PSREMOTING=0'


def install():
    package_prefix = control.package.split("-", 1)[0]
    pkg_pwsh5 = package_prefix + "-" + "powershell5"
    pkg_pwsh_core = package_prefix + "-" + "powershell-core"

    # Older Windows versions depends on PowerShell 5
    if windows_version() < WindowsVersions.Windows10:
        if not WAPT.is_installed(pkg_pwsh5):
            if WAPT.is_available(pkg_pwsh5):
                print("Installing: %s" % pkg_pwsh5)
                WAPT.install(pkg_pwsh5)
                WAPT.audit(pkg_pwsh5)
            else:
                error("ERROR: %s package not found on the repo, please import it" % pkg_pwsh5)
    else:
        # W10+ part
        if WAPT.is_installed(pkg_pwsh5):
            print("Forgetting: %s" % pkg_pwsh5)
            WAPT.forget_packages(pkg_pwsh5)

    # Forget Powershell Core
    if WAPT.is_installed(pkg_pwsh_core):
        print("Forgetting: %s" % pkg_pwsh_core)
        WAPT.forget_packages(pkg_pwsh_core)

    # Installing package
    bin_name = glob.glob("PowerShell-*.msi")[0]
    install_msi_if_needed(
        bin_name,
        min_version=control.get_software_version(),
    )

    # Disabling update check and telemetry
    set_environ_variable("POWERSHELL_CLI_TELEMETRY_OPTOUT", "1")
    set_environ_variable("POWERSHELL_TELEMETRY_OPTOUT", "1")
    set_environ_variable("POWERSHELL_UPDATECHECK", "Off")
    set_environ_variable("POWERSHELL_UPDATECHECK_OPTOUT", "1")
    set_environ_variable("DOTNET_CLI_TELEMETRY_OPTOUT", "1")
    set_environ_variable("DOTNET_TELEMETRY_OPTOUT", "1")

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


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name

    git_repo = "PowerShell/PowerShell"
    api_url = f"https://api.github.com/repos/{git_repo}/releases/latest"

    arch_dict = {
        'windows-x86': '-win-x86.msi',
        'windows-x64': '-win-x64.msi'
    }

    os_type = control.target_os + "-" + ensure_list(control.architecture)[0]

    # Getting latest version information from official sources
    print("API used is: %s" % api_url)
    json_load = wgets(api_url, proxies=proxies, as_json=True)

    for download in json_load["assets"]:
        if download["name"].endswith(arch_dict[os_type]):
            download_url = download["browser_download_url"]
            version = json_load["tag_name"].replace("v", "")
            latest_bin = download["name"]
            latest_bin_extension = latest_bin.rsplit('.', 1)[-1]
            break

    # Downloading latest binaries
    print(f"Latest {app_name} version is: {version}")
    print(f"Download URL is: {download_url}")
    if not isfile(latest_bin):
        print(f"Downloading: {latest_bin}")
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print(f"Binary is present: {latest_bin}")

    expected_issuer = "Microsoft Corporation"
    sign_name = waptlicences.check_msi_signature(latest_bin)[0]
    if sign_name != expected_issuer:
        error(f'Bad issuer {sign_name} != {expected_issuer} ')

    # Changing version of the package
    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)})")

    for f in glob.glob(f'*.{latest_bin_extension}'):
        if f != latest_bin:
            remove_file(f)

    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

d11942df52fd12470169797abfa4781d9480efdc81000ba4fa55a5b921ed8dd0 : PowerShell-7.6.4-win-x64.msi
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
c1ad5ade9a79635d3f28cc671f73aab29b6f17775ba1beb5dbbc372800a43f12 : WAPT/changelog.txt
cbe7c2cd69d59ba56302e6d6e474a71997406adae30740705ab38e3e56185c10 : WAPT/control
f6328cb3e50d5a2c14f663481de0ea43f9712014ccd430db91c6b4dee2fb07ba : WAPT/icon.png
9bf9bc57e1bf01c7eaba4a9a279205ae7d462b27444613235bf2c21ab4a2efa9 : luti.json
86d1fcb67f224cefb504e9701baecc1e727a2a00bafe04f8c351890e911b4ec7 : setup.py
cc5be38be264bd3bbe9395bbbf8ec2aa387a4d36a7cf263ab2637a1c3273d94f : update_package.py

https://github.com/PowerShell/PowerShell/tree/master/CHANGELOG
7.3.4-22
===
Disabling update check and telemetry

7.2.7-21
===
Last release supporting Windows 7/8.0

7.3.1-20
===
Cleanup old packages

7.2.6-15
===
Migrate package name from tis-powershell-core to tis-powershell, the code have been adapted for it on Windows