tis-ms-pstools 1-5

  • package : tis-ms-pstools
  • version : 1-5
  • description : PsTools
  • maintainer : TIS <technique@tranquil-it-systems.fr>
  • date : 2017-07-20 11:22:20
  • signer : TRANQUIL IT SYSTEMS
  • signature_date : 20170720-112220
  • min_os_version :
  • min_wapt_version :

setup.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------
#    This file is part of WAPT
#    Copyright (C) 2013  Tranquil IT Systems http://www.tranquil.it
#    WAPT aims to help Windows systems administrators to deploy
#    setup and update applications on users PC.
#
#    WAPT is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    WAPT is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with WAPT.  If not, see <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------
from setuphelpers import *
import os

# registry key(s) where WAPT will find how to remove the application(s)
uninstallkey = []

# command(s) to launch to remove the application(s)
uninstallstring = []

# list of required parameters names (string) which can be used during install
required_params = []

def install():
    dest_dir=makepath(programfiles32,'mspstools')
    if not isdir(dest_dir):
        mkdirs(dest_dir)
    for file_name in glob.glob(makepath('pstools','*')):
        filecopyto(file_name,dest_dir)
    tool_list = ('PsExec',"psfile","psgetsid","psinfo","pskill","pslist","psloggedon","psloglist","pspasswd","psservice","psshutdown","pssuspend")

    # accept EULA
    for sys_internal_reg_path in ( r"Software\Wow6432Node\Sysinternals\\",r"Software\Sysinternals\\"):
        for tool_name in tool_list:
            for sid in ('.DEFAULT','S-1-5-18','S-1-5-19','S-1-5-20'):
                key=reg_openkey_noredir(HKEY_USERS,r'%s\%s\%s' % (sid,sys_internal_reg_path, tool_name),sam=KEY_WRITE,create_if_missing=True)
                if key:
                    reg_setvalue(key,'EulaAccepted',1,REG_DWORD)
            key=reg_openkey_noredir(HKEY_CURRENT_USER,r'%s\%s' % (sys_internal_reg_path, tool_name),sam=KEY_WRITE,create_if_missing=True)
            if key:
                reg_setvalue(key,'EulaAccepted',1,REG_DWORD)
    add_to_system_path(dest_dir)

    

manifest

[["pstools/PsLoggedon.exe", "a9b37af96190adfcf36fb6301b1e07da1c5c4443"], ["pstools/PsExec.exe", "cd23b7c9e0edef184930bc8e0ca2264f0608bcb3"], ["pstools/pslist.exe", "4273b7bd38fc1f203ccc5fdfa1f7331b2683f001"], ["pstools/PsService.exe", "67cdb998656f3a938ebea57fa0065fcb853ea6a0"], ["pstools/psfile.exe", "2dce99c39c59aad43d24cd6dd4f20d29d8326e55"], ["pstools/pssuspend.exe", "be4ca29e12587db61260b4357798ad26be814954"], ["pstools/psversion.txt", "f5ad734b9751d78faaa3f1da4ca3486d9283b5e1"], ["pstools/PsInfo.exe", "fddf011b81da0ee66fad2f1cdeb67e5eeef4e142"], ["pstools/psloglist.exe", "4ba92a737f5aee970caafdca6b7ad0fb729eaf37"], ["pstools/PsGetsid.exe", "48f5467cebea5b7be8ad5e243f92be026fab6f99"], ["WAPT/certificate.crt", "0db563dc9077b268ca07ba834322d0fc5e21f8e5"], ["WAPT/control", "72af1b3896ef6f7231737d97a92ec813d3a09b64"], ["pstools/psshutdown.exe", "1f0a68fa8abe3abbedb2d52b24fd805aeb90f2f1"], ["pstools/pspasswd.exe", "727a26e0ad9f3e401a4d63ad5365e266917a3b6e"], ["setup.py", "8f60220ae276755835123169e3b894a42b1efaee"], ["pstools/pskill.exe", "445765bcaba554a63d4b7f466b8b6a7f973ca1df"], ["pstools/Pstools.chm", "28a1b4401459fa6301fc28556a3c0ace456c9d2c"], ["WAPT/wapt.psproj", "4e85d7af350c7aa022303492501577e1436625bd"]]
    

Forum feed

Paquets Wapt • Re: returned non-zero exit status 1152
J'ai fini par trouver une solution pour ce paquet Casio graph 35+ en utilisant un MSI qui était extrait au lancement du setup.exe. Voici le code qui fonctionne (avec licence education Casio) :

Code :

# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []

def install():
    # if you want to modify the keys depending on environment (win32/win64... params..)
    global uninstallkey
    global uninstallstring
    softname = 'GRAPH 35+ Manager PLUS (School License)'
    versionsoft = control['version'].split('-',1)[0]
    check_installed_soft = installed_softwares(softname)
    if check_installed_soft:
             for uninstall in check_installed_soft:
                key=uninstall['key']
                if installed_softwares(uninstallkey=key):
                   if Version(uninstall['version']) < Version(versionsoft):
                         cmd = WAPT.uninstall_cmd(uninstall['key'])
                         run_notfatal(cmd)

    run_notfatal('GRAPH35PLUS.msi /L "1036" /qn ISX_INSTALLKEY=XXXXX')

Statistiques: Publié par gaelds — 04 Mai 2017, 14:43


Paquets Wapt • Re: Paquet OFFICE 2016
fludo67 a écrit :

il faut appeler les fonctions que tu as défini , les ajouter après killsoft()

Code :

 
print('installing Office 2016')
    if not check_installed_out:
            cmd = '"setup.exe" /adminfile "silent.msp"'
    else:
            cmd = 'msiexec.exe /p silent.msp'
killsoft()
uninstall_office_modules()
uninstall_office_365()




Oui je vient de remarquer mon erreur, j'ai donc édité mon précédent post

Statistiques: Publié par Killian — 03 Mai 2017, 16:37


Paquets Wapt • Re: Paquet OFFICE 2016
il faut appeler les fonctions que tu as défini , les ajouter après killsoft()

Code :

 
print('installing Office 2016')
    if not check_installed_out:
            cmd = '"setup.exe" /adminfile "silent.msp"'
    else:
            cmd = 'msiexec.exe /p silent.msp'
killsoft()
uninstall_office_modules()
uninstall_office_365()

Statistiques: Publié par fludo67 — 03 Mai 2017, 16:36


Paquets Wapt • Re: Paquet OFFICE 2016
fludo67 a écrit :

j'ai deux routines : une pour office 365 et une pour les compléments office (ça m'est arrivésur pas mal de postes avec office 2007 : #erreur -2146368439)

Code :

def uninstall_office_modules():
    print('Suppression des anciens modules office..')
    check_installed_soft = installed_softwares('Microsoft Office System')
    if check_installed_soft:
        for uninstall in check_installed_soft:
            key=uninstall['key']
            if installed_softwares(uninstallkey=key):
                cmd = WAPT.uninstall_cmd(uninstall['key'])
                run(cmd)

def uninstall_office365():
    print('Suppression Office 365')
    check_installed_soft = installed_softwares('office 365')
    if check_installed_soft:
        for uninstall in check_installed_soft:
            key=uninstall['key']
            if installed_softwares(uninstallkey=key):
                cmd = WAPT.uninstall_cmd(uninstall['key'])
                run(cmd)


Il y a peut-être moyen de faire plus propre en regroupant toutes les routines en une seule avec une boucle for, mais j'ai fais au plus simple.

mon def install ressemble à ça :

Code :

def install():
          msoname = 'Microsoft Office Standard 2016'
        msoversion='16.0.4266.1001'
        check_installed_mso = installed_softwares(msoname)
        if not check_installed_mso:
            killsoft()
         
            uninstall_office_modules()
            uninstall_office365()
           
            print('Installation de Microsoft Office 2016')
            install_exe_if_needed('setup.exe',silentflags='/adminfile "silent.msp"',min_version=msoversion,key=None,timeout=1200)
            check_installed_out = installed_softwares(softname)
            if not check_installed_out:
             error('End audit did not find the software.')



Merci mon code ressemble à ça qu'es ce que tu en pense ?

Code :

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

uninstallkey = []

def install():




    def uninstall_office_modules():
        print('Suppression des anciens modules office..')
        check_installed_soft = installed_softwares('Microsoft Office System')
        if check_installed_soft:
            for uninstall in check_installed_soft:
                key=uninstall['key']
                if installed_softwares(uninstallkey=key):
                    cmd = WAPT.uninstall_cmd(uninstall['key'])
                    run(cmd)

    def uninstall_office365():
        print('Suppression Office 365')
        check_installed_soft = installed_softwares('office 365')
        if check_installed_soft:
            for uninstall in check_installed_soft:
                key=uninstall['key']
                if installed_softwares(uninstallkey=key):
                    cmd = WAPT.uninstall_cmd(uninstall['key'])
                    run(cmd)


    def killsoft():
      for soft in ('WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'):
        if isrunning(soft):
           print ("closing %s" % soft)
           killalltasks(soft)
    softname = 'Microsoft Office Professionnel Plus 2016'
    check_installed_out = installed_softwares(softname)

    print('installing Office 2016')
    if not check_installed_out:
            cmd = '"setup.exe" /adminfile "silent.msp"'
    else:
            cmd = 'msiexec.exe /p silent.msp'
    killsoft()
    uninstall_office_modules()
    uninstall_office365()
    run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
    check_installed_out = installed_softwares(softname)
    if not check_installed_out:
        error('End audit did not find the software.')

def uninstall():
    fichier = open("%s\silent.xml" % programfiles32, "w" )
    fichier.write('<Configuration Product="ProPlus"> \n')
    fichier.write('<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> \n')
    fichier.write('   <Setting Id="SETUP_REBOOT" Value="NEVER" /> \n')
    fichier.write('</Configuration> \n')
    fichier.close()
    run('"%s\Common Files\microsoft shared\OFFICE16\Office Setup Controller\Setup.exe" /uninstall ProPlus /config "%s\silent.xml"' % (programfiles32,programfiles32),timeout=1200)
    remove_file(r'%s\silent.xml'% programfiles32)

Statistiques: Publié par Killian — 03 Mai 2017, 16:27


Paquets Wapt • Re: Paquet OFFICE 2016
j'ai deux routines : une pour office 365 et une pour les compléments office (ça m'est arrivésur pas mal de postes avec office 2007 : #erreur -2146368439)

Code :

def uninstall_office_modules():
    print('Suppression des anciens modules office..')
    check_installed_soft = installed_softwares('Microsoft Office System')
    if check_installed_soft:
        for uninstall in check_installed_soft:
            key=uninstall['key']
            if installed_softwares(uninstallkey=key):
                cmd = WAPT.uninstall_cmd(uninstall['key'])
                run(cmd)

def uninstall_office365():
    print('Suppression Office 365')
    check_installed_soft = installed_softwares('office 365')
    if check_installed_soft:
        for uninstall in check_installed_soft:
            key=uninstall['key']
            if installed_softwares(uninstallkey=key):
                cmd = WAPT.uninstall_cmd(uninstall['key'])
                run(cmd)


Il y a peut-être moyen de faire plus propre en regroupant toutes les routines en une seule avec une boucle for, mais j'ai fais au plus simple.

mon def install ressemble à ça :

Code :

def install():
          msoname = 'Microsoft Office Standard 2016'
        msoversion='16.0.4266.1001'
        check_installed_mso = installed_softwares(msoname)
        if not check_installed_mso:
            killsoft()
         
            uninstall_office_modules()
            uninstall_office365()
           
            print('Installation de Microsoft Office 2016')
            install_exe_if_needed('setup.exe',silentflags='/adminfile "silent.msp"',min_version=msoversion,key=None,timeout=1200)
            check_installed_out = installed_softwares(softname)
            if not check_installed_out:
             error('End audit did not find the software.')

Statistiques: Publié par fludo67 — 03 Mai 2017, 16:20


Paquets Wapt • Re: Paquet OFFICE 2016
agauvrit a écrit :

Cette erreur signifie que l'installation a durée trop longtemps et que WAPT a coupé son execution au dela des 1200 secondes max (ce qui est déjà beaucoup)

As-tu essayé de lancer l'installation en mode debug avec PyScripter ?

https://www.wapt.fr/fr/doc/CreationPaqu ... et-waptdev



J'ai cette erreur :

Code :

Message   File Name   Line   Position   
Traceback            
    <module>   C:\waptdev\test-msoffice-wapt\setup.py   2      
ImportError: No module named setuphelpers            

Statistiques: Publié par Killian — 03 Mai 2017, 15:13