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: x86
  • signature_date:
  • size: 107.86 Mo
  • installed_size: 270.17 Mo
  • homepage : https://docs.microsoft.com/powershell/

package           : tis-powershell
version           : 7.6.4-23
architecture      : x86
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      : 2267c39c-8add-415d-a440-cb0f4dcc39a3
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:10:45.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         : o9fhJyERluxS7lhPTMoBWMScYne7NldbIUd0Xlfssl86waFa0rb+G2dnTxUWmYDmhdzuU10syxjTkNn0e7FfLDynUMiqzGnwHGcUu72kPx6Ep+wDmtrhn/ePJ/txN5DjlV4Anw6ChXC5c1NRTc1U+6CPvKwGk9ufGtPbZAz0qlkNXx+IJC+aGZmz4u1ZrieuA8dA/dxFg5qIUtSJTeeobhICn1s5U3Gy5Ir9RU9kcOtoohAo7rMHikrrZPlm4GcmWnuR9eId5yABTQVHqLONaBX+JB0M//oF4lHRFrGRoFbRqjT3onym34R3hRRaQ6+j9fj2QCXShxWg+p/bv+ZD/g==

# -*- 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

05ebf727ff55adf919200fb9239a29a24b051487f0138818628bb1cfffac4bb2 : PowerShell-7.6.4-win-x86.msi
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
c1ad5ade9a79635d3f28cc671f73aab29b6f17775ba1beb5dbbc372800a43f12 : WAPT/changelog.txt
d67d1ac65cab04eafd3b44e9595c04ee9bfa6bdfde6b8e15a5d77f19a97d71cf : WAPT/control
f6328cb3e50d5a2c14f663481de0ea43f9712014ccd430db91c6b4dee2fb07ba : WAPT/icon.png
38f712cce1a10b8589e80704223fea1bfaaa5b18af9f1f0b6125f63a45af0ded : 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