Modulare Skriptfreigabe

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Antwort
Benoit
Nachrichten: 43
Anmeldung: 26. Juni 2023 - 11:52 Uhr
Ort: Tarbes

28. Februar 2025 – 13:53 Uhr

wapt Version 2.6.0.16937

Guten Morgen,

Ich möchte das Skript (für Windows) teilen, das ich zur Softwareverteilung in meinem Netzwerk verwende.

Code: Alle auswählen

# -*- coding: utf-8 -*-


#---------------------------------------------------------------------
#Ce script sert à déployer des logiciels par l'intermédiaire de wapt.-
#Il prends en charge les applications portables, les exe et les msi.-- 
#Il ne prends en charge dans l'état que les installations standards --
#---------------------------------------------------------------------


'''
Importation des modules"
'''
from setuphelpers import *
import subprocess
import time


'''
Déclarations des variables
'''


#---------------------------------------------------------------
#Variables pour le choix de l'installation portable, exe ou msi-
#---------------------------------------------------------------


'''
En fonction de l'application à installer, il faut mettre "True" à la place de "False". 
exemple : Si je veux installer un exécultable je fait remplir les variables ci-dessous comme suit :
if_app_portable = False
if_app_exe = True
if_app_msi = False
'''
if_app_portable = False 
if_app_exe = False
if_app_msi = False


#------------------------------------
#variables pour toutes les fonctions-
#------------------------------------


name_app ="" #metre le "nom du logiciel" présent dans l'onglet "inventaire logiciel" de la console wapt
target = r"" #Si la création d'un raccourci est nécessaire mettre le chemin complet menant au lenceur en .exe
label = name_app 


#-------------------------------------------------------------------
#Variables pour les fonctions d'installation d'application portable-
#-------------------------------------------------------------------


folder_main_app_portable = "" #Mettre le chemin du dossier où l'application sera copier
folder_install_app_portable = os.path.join(folder_main_app_portable,name_app)
zipfn = "" #Mettre le nom de l'archive


#----------------------------------------------------------
#Variables pour les fonctions d'installation d'éxecutables-
#----------------------------------------------------------

exe = "" #Mettre le nom de l'installateur en .exe
min_version="" #Mettre le nom de la version du logiciel


#---------------------------------------------------
#Variables pour les fonctions d'installation de msi-
#---------------------------------------------------


msi = "" #Mettre le nom de l'installateur msi
cmd_install = f"msiexec /i {msi} /quiet"


'''
Déclarations des fonctions
'''


#------------------------------------------------------------
#Fonctions servant à l'installation d'applications portables-
#------------------------------------------------------------


#fonction servant à créer les dossiers d'installation
def create_folder_app_portable():
    try:
        try:
            if not os.path.exists(folder_main_app_portable):
                os.makedirs(folder_main_app_portable)
                print(f"Le dossier {folder_main_app_portable} a été crée avec succès")
        except Exception as e:
            print(f"L'erreur 1.1 s'est produite : {e}")
        try:
            if not os.path.exists(folder_install_app_portable):
                os.makedirs (folder_install_app_portable)
                print(f"Le dossier {folder_install_app_portable} a été crée avec succès")
        except Exception as e:
            print(f"L'erreur 1.2 s'est produite : {e}")
    except Exception as e:
            print(f"L'erreur 1.3 s'est produite : {e}")    


# fonction servant à installer une application portable
def install_app_portable():
    try:
        try:
            create_folder_app_portable()
        except Exception as e:
            print(f"L'erreur 2.1  s'est produite : {e}")
        try:
            unzip(zipfn,target=folder_install_app_portable)
            print(f"Le dossier {zipfn} a été décompressé avec succès")
        except Exception as e:
            print(f"L'erreur 2.2 s'est produite : {e}")
        try:
            create_desktop_shortcut(label,target)
            print(f"Le raccourci {name_app} a été crée avec succès")
        except Exception as e:
            print(f"L'erreur 2.3 s'est produite : {e}")
        print(f"L'application {name_app} a été installée avec susccès")
    except Exception as e:
            print(f"L'erreur 2.4 s'est produite : {e}")


#Fonction à désinstaller une application portable
def uninstall_app_portable():
    try:
        try:
            if os.path.exists(folder_install_app_portable):
                try:
                    remove_tree(folder_install_app_portable)
                    print(f"Le dossier {folder_install_app_portable} a été supprimé avec succès")
                except Exception as e:
                    print(f"L'erreur 3.1 s'est produite : {e}")
                try:
                    remove_desktop_shortcut(label)
                    print(f"Le raccourci {name_app} a été supprimé avec susccès")
                except Exception as e:
                    print(f"L'erreur 3.2 s'est produite : {e}")
        except Exception as e:
            print(f"L'erreur  s'est produite : {e}")
        print(f"L'application {name_app} a été désinstallée avec succès")
    except Exception as e:
            print(f"L'erreur 3.3 s'est produite : {e}")


#---------------------------------------------------
#Fonctions servant à l'installation d'un éxecutable-
#---------------------------------------------------


# fonction qui permet d'installer un éxecutable
def install_app_exe():
    try :
        print(f"L'installation de {name_app} est en cours ...")
        try:
            install_exe_if_needed(exe,silentflags=getsilentflags(exe),key='',min_version=min_version)
            print(f"L'application {name_app} a été installée avec succès")
        except Exception as e :
            print(f"L'erreur 4.1 s'est produite : {e}")
        try:
            # commenter la ligne ci-dessous avec un '#' si vous n'avez pas besoin de créer un raccourci
            create_desktop_shortcut(label,target)
            print(f"Le raccourci {label} a été créer avec succès")
        except Exception as e :
            print(f"L'erreur 4.2 s'est produite : {e}")
    except Exception as e :
        print(f"L'erreur 4.3 s'est produite : {e}")


# fonction qui permet de désinstaller un éxecutable
def uninstall_app_exe():
    try:
        for soft in installed_softwares():
            if name_app in soft['name']:
                try:
                    print(f"L'application {name_app} est déjà installée. Elle va être désinstallée. Merci de patienter ...")
                    subprocess.run(uninstall_cmd(soft['key']))
                except Exception as e :
                    print(f"L'erreur 5.1 s'est produite : {e}")
                try:
                    time.sleep(10) # temps nécessaire pour laisser le temps de la désinstallion complete pour certaines applications
                    print(f"L'application {name_app} a été désinstallée avec succès")
                except Exception as e :
                    print(f"L'erreur 5.2 s'est produite : {e}")
                try:
                    # commenter la ligne ci-dessous avec un '#' si vous n'avez pas besoin de supprimer un raccourci
                    remove_desktop_shortcut(label)
                    print(f"Le raccourci {label} a été supprimé avec succès")
                except Exception as e :
                    print(f"L'erreur 5.3 s'est produite : {e}")
                break
    except Exception as e :
        print(f"L'erreur 5.4 s'est produite : {e}")


#------------------------------------
#Fonction servant à installer un msi-
#------------------------------------


#fonction servant à désinstaller le programme msi
def uninstall_app_msi():
    try:
        for soft in installed_softwares(): # cherche dans l'inventaire logiciel
            if name_app in soft['name']: #compare si le name_app existe dans l'invetaire logiciel
                try:
                    uninstall_key = soft['key'] # récupére la clef de déinstallation
                    cmd_uninstall = f"msiexec /x{uninstall_key} /quiet" # commande de désinstallation (quiet est un argument pour désinstaller silencieusement)
                    print(f"La désinstallation de {name_app} commence...")
                    subprocess.run(cmd_uninstall,shell=True) #désinstaller le programme
                    print(f"L'application {name_app} a été désinstallée avec succès")
                except Exception as e :
                    print(f"L'erreur 6.1 s'est produite : {e}")
                try:
                    #si vous n'avez pas besoin  de supprimer le raccourci, commentez la ligne ci-dessous avec un #
                    remove_desktop_shortcut(label) #supprime le raccourci
                    print(f"Le raccourci {label} a été supprimer avec succès")
                except Exception as e :
                    print(f"L'erreur 6.2 s'est produite : {e}")
                break
    except Exception as e :
        print(f"L'erreur 6.3 s'est produite : {e}")


#fonction servant à installer le programme msi
def install_app_msi():
    try:
        try:
            print(f"L'installation de {name_app} commence ...")
            subprocess.run(cmd_install,shell=True) #installe le programme
            print(f"L'application {name_app} a été installée avec succès")
        except Exception as e :
            print(f"L'erreur 7.1 s'est produite : {e}")
        try:
            #si vous n'avez pas besoin  de créer un raccourci, commentez la ligne ci-dessous avec un #
            create_desktop_shortcut(label,target) # créer un raccourci
            print(f"Le raccourci {label} a été crée avec succès")
        except Exception as e :
            print(f"L'erreur 7.2 s'est produite : {e}")
    except Exception as e :
        print(f"L'erreur 7.3 s'est produite : {e}")


#-------------------------------------------------------
# fonction servant à définir le choix de l'installation-
#-------------------------------------------------------


def choix_installation():
    if if_app_portable :
        uninstall_app_portable()
        install_app_portable()        
    if if_app_exe :
        uninstall_app_exe()
        install_app_exe()
    if if_app_msi :
        uninstall_app_msi()
        install_app_msi()


#-----------------------------------
#Fonction de désinstalation globale-
#-----------------------------------


def uninstall():    
    if if_app_portable:
        uninstall_app_portable()
    if if_app_exe :
        uninstall_app_exe()
    if if_app_msi :
        uninstall_app_msi()


"""
Main code
"""


def install():
    choix_installation()

Antwort