Bonjour à tous,
Nos utilisateurs nous réclamait depuis un moment la fonctionnalité de Teams "Activez l'expérience de réunion / Together mode" disponible depuis cet été / début septembre.
Hors cette fonction était bien disponible (à version de client égale) sur les installation autonomes mais pas sur les installation via le paquet Teams (déployé avec le paquet WAPT pour tous les utilisateurs sur le poste en version figée).
Après recherche un peu longue, j'ai compris que cette fonction n'était pas disponible dans les environnement VDI.
Et le fait que l'environnement VDI soit simulé dans l'installation du paquage bloque de fait cette fonctionnalité.
Pour contourner ceci, j'ai adapté le script pour supprimer les entrées de registres "VDI" un fois le MSI installé. Et là magie une fois le cache Teams vidée la fameuse fonctionnalité tant attendue apparait...
Est-ce que vous pensez que le fait de supprimer les entrées de registres "VDI" une fois le paquet msi installé peut avoir un impact ?
cordialement,
Pierre
Paquet Teams et fonctionnalité "Expérience de Réunion"
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
-
- Messages : 9
- Inscription : 14 nov. 2020 - 10:55
- Localisation : Clermont-Ferrand
- Version de WAPT installée (2.1.0 Entreprise)
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
Bonjour,
Bien entendu que cela a un impact.
Les clés de registre sont ajoutés pour simuler un environnement VDI et pouvoir réaliser l'installation avec l'argument ALLUSER=1 (sans le S).
C'est ce qui permet d'installer Microsoft Teams dans le répertoire C:\Program Files (x86)\Microsoft\Teams et non dans le %APPDATA% de chaque utilisateur.
En supprimant les clés de registre après l'installation, je ne sais pas cela que peut donner ...
Cordialement.
Bien entendu que cela a un impact.
Les clés de registre sont ajoutés pour simuler un environnement VDI et pouvoir réaliser l'installation avec l'argument ALLUSER=1 (sans le S).
C'est ce qui permet d'installer Microsoft Teams dans le répertoire C:\Program Files (x86)\Microsoft\Teams et non dans le %APPDATA% de chaque utilisateur.
En supprimant les clés de registre après l'installation, je ne sais pas cela que peut donner ...
Cordialement.
WAPT Community 1.8
-
- Messages : 9
- Inscription : 14 nov. 2020 - 10:55
- Localisation : Clermont-Ferrand
Bonjour,
Voici le code du paquet adapté (utilisé avec la version 1.3.0.28779 de l'installer Teams) :
2 modifs :
- la suppression des clés de registre VDI une fois installé
- le nettoyage du profil utilisateur au session-setup
C'est en test sur une cinquantaine de postes actuellement. Si quelqu'un trouve l'option à modifier pour éviter de purger tout le profil utilisateur...
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
import json
import platform
import time
#{731F6BAA-A986-45A4-8936-7C3AAAAA760B} Teams Machine-Wide Installer 1.3.0.12058 MsiExec.exe /I{731F6BAA-A986-45A4-8936-7C3AAAAA760B}
uninstallkey = []
# Installation procedure: https://docs.microsoft.com/fr-fr/microsoftteams/teams-for-vdi#install-or-update-the-teams-desktop-app-on-vdi
# Defining variables
bin_name_string = 'Teams_windows_%s_x64.msi'
bin_name_temp = 'Teams_windows_x64.msi'
url_dl = "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=windows&arch=x64&managedInstaller=true&download=true"
silent_args = 'OPTIONS="noAutoStart=true" ALLUSER=1' #OPTIONS="noAutoStart=true" ALLUSER=1 ALLUSERS=1
#silent_args = 'ALLUSER=1' #OPTIONS="noAutoStart=true" ALLUSER=1 ALLUSERS=1
app_name_short = 'Teams'
app_dir = makepath(programfiles32,'Microsoft','Teams')
app_path = makepath(app_dir, 'current','Teams.exe')
#sys_json_setup = makepath(app_dir,'setup.json')
#json_setup_content = json.loads('{"noAutoStart":true,"--exeName":"Teams.exe"}')
def install():
# Initializing variables
package_version = control.version.split('-')[0]
bin_name = bin_name_string % package_version
app_name = control.name
# Uninstalling older versions if found
for uninstall in installed_softwares(name=app_name_short):
if Version(uninstall['version']) < Version(package_version):
print('Older %s version found (%s)' % (app_name,uninstall['version']))
print('Removing: %s (%s)' % (uninstall['name'],uninstall['version']))
run(uninstall_cmd(uninstall['key']))
time.sleep(15)
""" # Force uninstalling to make sure that we are using system-wide installation
for uninstall in installed_softwares(name=app_name_short):
print('Removing: %s' % uninstall['name'])
run(uninstall_cmd(uninstall['key']))
time.sleep(5) """
# Adding fake WVD/VDI RegKey
# Un/comment if needed
registry_set(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.\VMware VDM\Agent','','')
registry_set(HKEY_LOCAL_MACHINE,r'SOFTWARE\Citrix\PortICA','','')
registry_set(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Teams','IsWVDEnvironment',1,type=REG_DWORD)
# Installing the package system wide
print('Installing: %s' % bin_name)
install_msi_if_needed(bin_name,
properties=silent_args,
min_version=package_version,
accept_returncodes=[0,3010,1605,1614,1641],
timeout=900)
# Disabling AutoStart
if iswin64():
registry_delete(HKEY_LOCAL_MACHINE,r'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run','Teams')
registry_delete(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run','Teams')
# Removing shortcuts
remove_desktop_shortcut(app_name)
# Adding Firewall Rules for Teams
run('netsh advfirewall firewall add rule name="%s" dir=in action=allow program="%s" enable=yes protocol=TCP profile=domain' % (app_name,app_path))
run('netsh advfirewall firewall add rule name="%s" dir=in action=allow program="%s" enable=yes protocol=TCP profile=private' % (app_name,app_path))
run('netsh advfirewall firewall add rule name="%s" dir=in action=allow program="%s" enable=yes protocol=UDP profile=domain' % (app_name,app_path))
run('netsh advfirewall firewall add rule name="%s" dir=in action=allow program="%s" enable=yes protocol=UDP profile=private' % (app_name,app_path))
# clean VDI register key (modif PB)
if reg_value_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Teams','IsWVDEnvironment'):
registry_delete(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Teams','IsWVDEnvironment')
if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.'):
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.\VMware VDM\Agent','',force=False)
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.\VMware VDM','',force=False)
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.','',force=False)
if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Citrix\PortICA'):
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\Citrix\PortICA','',force=False)
def uninstall():
# Initializing variables
processes_to_kill = control.impacted_process.split(',')
# Cleaning fake WVD/VDI RegKey properly
# Un/comment if needed
if reg_value_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Teams','IsWVDEnvironment'):
registry_delete(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Teams','IsWVDEnvironment')
if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.'):
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.\VMware VDM\Agent','',force=False)
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.\VMware VDM','',force=False)
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\VMware, Inc.','',force=False)
if reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Citrix\PortICA'):
registry_deletekey(HKEY_LOCAL_MACHINE,r'SOFTWARE\Citrix\PortICA','',force=False)
# Removing remaining files
if isdir(app_dir):
killalltasks(processes_to_kill)
time.sleep(15)
remove_tree(app_dir)
def session_setup():
# Initializing variables
user_conf_dir = makepath(application_data,'Microsoft','Teams')
json_config = makepath(user_conf_dir,'desktop-config.json')
json_settings = makepath(user_conf_dir,'settings.json')
user_app_dir = makepath(user_local_appdata,'Microsoft','Teams')
user_app_path = makepath(user_app_dir,'current','Teams.exe')
user_app_updater = makepath(user_app_dir,'Update.exe')
#user_app_version = registry_readstring(HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Uninstall\Teams','DisplayVersion')
user_app_progdata_dir = makepath('C:','ProgramData',get_current_user(),'Microsoft','Teams')
user_app_progdata_path = makepath(user_app_progdata_dir,'current','Teams.exe')
user_app_progdata_updater = makepath(user_app_progdata_dir,'Update.exe')
user_silent_args_uninst = '--uninstall -s'
processes_to_kill = control.impacted_process.split(',')
# Uninstalling from user environment (procedure: https://docs.microsoft.com/microsoftteams/msi-deployment)
if isfile(user_app_path):
print('Uninstalling Microsoft Teams from user environment')
killalltasks(processes_to_kill)
run('"%s" %s' % (user_app_updater,user_silent_args_uninst))
if isdir(user_app_dir):
remove_tree(user_app_dir)
if isfile(user_app_progdata_path):
print('Uninstalling Microsoft Teams from user ProgramData environment')
killalltasks(processes_to_kill)
run('"%s" %s' % (user_app_progdata_updater,user_silent_args_uninst))
if isdir(user_app_progdata_dir):
killalltasks(processes_to_kill)
remove_tree(user_app_progdata_dir)
if reg_value_exists(HKEY_CURRENT_USER,r'Software\Microsoft\Office\Teams','PreventInstallationFromMsi'):
registry_delete(HKEY_CURRENT_USER,r'Software\Microsoft\Office\Teams','PreventInstallationFromMsi')
# suppression autoremplissage uid (modif PB)
if not reg_value_exists(HKEY_CURRENT_USER,r'Software\Microsoft\Office\Teams','SkipUpnPrefill'):
registry_set(HKEY_CURRENT_USER,r'Software\Microsoft\Office\Teams','SkipUpnPrefill',1,type=REG_DWORD)
# nettoyage profil teams utilisateur (un peu violent mais le nettoyage du cache ne suffisant pas...)
if isdir(user_conf_dir):
killalltasks(processes_to_kill)
time.sleep(15)
remove_tree(user_conf_dir)
# Define user settings (procedure: https://techcommunity.microsoft.com/t5/microsoft-teams/how-to-disable-check-for-updates-in-microsoft-teams/m-p/54644)
print('Setting up user settings')
if not isdir(user_conf_dir):
mkdirs(user_conf_dir)
# desktop-config.json
if isfile(json_config):
json_config_content = load_json(json_config)
else:
json_config_content = json.loads('{"appPreferenceSettings":{}}')
#json_config_content = json.load({})
json_config_content['appPreferenceSettings']['registerAsIMProvider'] = False
json_config_content['appPreferenceSettings']['openAsHidden'] = True
json_config_content['appPreferenceSettings']['runningOnClose'] = True
json_config_content['openAtLogin'] = False
json_config_content['isForeground'] = True
json_config_content['wamFallbackInProgress'] = False
json_config_content['disableWarningOnOpenKeyRegistered'] = True
json_config_content['isAppFirstRun'] = False
write_json(json_config,json_config_content)
# settings.json
if isfile(json_settings):
json_settings_content = load_json(json_settings)
else:
json_settings_content = json.loads('{"baseSettings":{},"initializedSettings":{},"preauthSettings":{"samplingRules":{}}}')
#json_settings_content = json.load({})
# Update part
json_settings_content['baseSettings']['enableBlockSilentUpdate'] = True
json_settings_content['baseSettings']['disableAllUsersAutoUpdate'] = True
json_settings_content['baseSettings']['enableUnAuthUpdates'] = False
""" json_settings_content['initializedSettings']['disableAllUsersAutoUpdate'] = True
json_settings_content['preauthSettings']['disableAllUsersAutoUpdate'] = True
json_settings_content['preauthSettings']['samplingRules']['updateNotificationEnabled'] = False """
# Telemetry part
json_settings_content['baseSettings']['enableAdalMacTelemetryV2'] = False
json_settings_content['baseSettings']['enableAdalWinTelemetry'] = False
json_settings_content['baseSettings']['proplusAdditionalTelemetryEnabled'] = False
json_settings_content['baseSettings']['regionInTelemetryEnabled'] = False
json_settings_content['baseSettings']['tenantRegionInTelemetryEnabled'] = False
""" json_settings_content['initializedSettings']['tenantRegionInTelemetryEnabled'] = False
json_settings_content['preauthSettings']['tenantRegionInTelemetryEnabled'] = False
json_settings_content['preauthSettings']['samplingRules']['tenantRegionInTelemetryEnabled'] = False """
# Other part
json_settings_content['baseSettings']['enableRegisterProtocolToRoot'] = False
""" json_settings_content['preauthSettings']['registerAddinOnMeetingPolicySettingsSync'] = False """
write_json(json_settings,json_settings_content)
def update_package():
print('Download/Update package content from upstream binary sources')
# Getting proxy informations from WAPT settings
proxy = {}
if platform.system()=='Windows' and isfile(makepath(user_local_appdata(),'waptconsole','waptconsole.ini')):
proxywapt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','http_proxy')
if proxywapt :
proxy = {'http':proxywapt,'https':proxywapt}
# Initializing variables
latest_bin = bin_name_temp
# Downloading latest binaries
if isfile(bin_name_temp):
remove_file(bin_name_temp)
if not isfile(latest_bin):
print('Downloading: ' + latest_bin)
wget(url_dl,latest_bin,proxies=proxy)
# Get version from file
version_from_file = get_msi_properties(latest_bin)['ProductVersion']
version = version_from_file
old_latest_bin = latest_bin
latest_bin = bin_name_string % version
if isfile(latest_bin):
remove_file(latest_bin)
os.rename(old_latest_bin,latest_bin)
# Change version of the package
pe = PackageEntry().load_control_from_wapt('.')
pe.version = '%s-%s'%(version,int(pe.version.split('-',1)[1])+1)
pe.save_control_to_wapt('.')
print('Changing version to ' + pe.version + ' in WAPT\\control')
print('Update package done. You can now build-upload your package')
else:
print('This package is already up-to-date')
# Deleting outdated binaries
for bin_in_dir in glob.glob('*.exe') or glob.glob('*.msi') or glob.glob('*.zip'):
if bin_in_dir != latest_bin :
print('Outdated binary: ' + bin_in_dir + ' Deleted')
remove_file(bin_in_dir)
def load_json(json_filename):
with open(json_filename) as json_file:
data = json.load(json_file)
return data
def write_json(json_filename,data):
with open(json_filename, 'w') as outfile:
json.dump(data, outfile, sort_keys=True, indent=4, default=str)
- Version de WAPT installée (2.1.0 Entreprise)
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
-
- Messages : 9
- Inscription : 14 nov. 2020 - 10:55
- Localisation : Clermont-Ferrand
Bonjour,
Le test sur une cinquantaine de machine est concluant, nous passons en prod sur 1700 machines.
cordialement,
Pierre
Le test sur une cinquantaine de machine est concluant, nous passons en prod sur 1700 machines.
cordialement,
Pierre
- Version de WAPT installée (2.1.0 Entreprise)
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
- OS du serveur : Debian
- OS de la machine d'administration/création des paquets Windows 10
Bonjour,
Merci pour vos retours, j'ai modifié le paquet.
Vous n'avez pas eu de remontée d'utilisateur qui devait se reconnecter très régulièrement voir tous les jours à Teams ?
Au cas où j'ai fait un cleanup unique du profil, voilà le bout de code.
Il faudra contrôler que l'option ne disparaisse pas à la prochaine mise à jour mais cela devrait être bon
Cordialement,
Jimmy
Merci pour vos retours, j'ai modifié le paquet.
Vous n'avez pas eu de remontée d'utilisateur qui devait se reconnecter très régulièrement voir tous les jours à Teams ?
Au cas où j'ai fait un cleanup unique du profil, voilà le bout de code.
Code : Tout sélectionner
# No longer Prefill UPN
registry_set(HKEY_CURRENT_USER,r'Software\Microsoft\Office\Teams','SkipUpnPrefill',1,type=REG_DWORD)
# Cleaning up Teams profile once
if registry_readstring(HKEY_CURRENT_USER,r'Software\WAPT\Teams','CleanupOnce') != 'Done':
if isdir(user_conf_dir):
killalltasks(processes_to_kill)
time.sleep(2)
remove_tree(user_conf_dir)
registry_set(HKEY_CURRENT_USER,r'Software\WAPT\Teams','CleanupOnce','Done')
Cordialement,
Jimmy