Hallo zusammen,
Unsere Nutzer haben uns schon seit einiger Zeit nach der Teams-Funktion "Meeting-Erlebnis aktivieren / Zusammen-Modus" gefragt, die seit diesem Sommer / Anfang September verfügbar ist.
Diese Funktion war jedoch (mit der gleichen Clientversion) bei eigenständigen Installationen verfügbar, nicht aber bei Installationen über das Teams-Paket (das zusammen mit dem WAPT-Paket für alle Benutzer auf der Workstation in einer festen Version bereitgestellt wurde).
Nach einiger Recherche wurde mir klar, dass diese Funktion in VDI-Umgebungen nicht verfügbar ist.
Und die Tatsache, dass die VDI-Umgebung bei der Paketinstallation simuliert wird, blockiert diese Funktionalität effektiv.
Um das zu umgehen, habe ich das Skript so angepasst, dass die „VDI“-Registry-Einträge nach der MSI-Installation gelöscht werden. Und dann, wie von Zauberhand, erscheint die lang ersehnte Funktionalität, sobald der Teams-Cache geleert ist.
Glauben Sie, dass das Löschen der "VDI"-Registry-Einträge nach der Installation des MSI-Pakets Auswirkungen haben könnte?
Aufrichtig,
Felsen
Teams-Paket und Funktion „Meeting-Erlebnis“
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.
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.
-
pierre.baridon
- Nachrichten: 12
- Anmeldung: 14. November 2020 - 10:55 Uhr
- Standort: Clermont-Ferrand
- Installierte WAPT-Version (2.1.0 Enterprise)
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Hallo,
vielen Dank für das Feedback. Ich hatte dasselbe vor.
Könnten Sie mir bitte Ihr Skript zur Verfügung stellen? Ich könnte es in einer Testumgebung mit 30 Rechnern prüfen und sehen, ob es Nebenwirkungen gibt.
Danke.
vielen Dank für das Feedback. Ich hatte dasselbe vor.
Könnten Sie mir bitte Ihr Skript zur Verfügung stellen? Ich könnte es in einer Testumgebung mit 30 Rechnern prüfen und sehen, ob es Nebenwirkungen gibt.
Danke.
Hallo,
natürlich hat das Auswirkungen.
Die Registrierungsschlüssel werden hinzugefügt, um eine VDI-Umgebung zu simulieren und die Installation mit dem Argument ALLUSER=1 (ohne das „S“) zu ermöglichen.
Dadurch wird Microsoft Teams im C:\Program Files (x86)\Microsoft\Teams und nicht im %APPDATA%-Verzeichnis jedes Benutzers installiert.
Ich weiß nicht, welche Folgen das Löschen der Registrierungsschlüssel nach der Installation haben könnte.
Viele Grüße.
natürlich hat das Auswirkungen.
Die Registrierungsschlüssel werden hinzugefügt, um eine VDI-Umgebung zu simulieren und die Installation mit dem Argument ALLUSER=1 (ohne das „S“) zu ermöglichen.
Dadurch wird Microsoft Teams im C:\Program Files (x86)\Microsoft\Teams und nicht im %APPDATA%-Verzeichnis jedes Benutzers installiert.
Ich weiß nicht, welche Folgen das Löschen der Registrierungsschlüssel nach der Installation haben könnte.
Viele Grüße.
WAPT Community 1.8
-
pierre.baridon
- Nachrichten: 12
- Anmeldung: 14. November 2020 - 10:55 Uhr
- Standort: Clermont-Ferrand
Guten Morgen,
Hier ist der Code für das angepasste Paket (verwendet mit Version 1.3.0.28779 des Teams-Installationsprogramms):
2 Änderungen:
- Löschen der VDI-Registrierungsschlüssel nach der Installation
- Bereinigen des Benutzerprofils bei der Sitzungseinrichtung
Es wird derzeit auf etwa fünfzig Rechnern getestet. Falls jemand eine Möglichkeit findet, die Einstellung so zu ändern, dass das gesamte Benutzerprofil nicht gelöscht wird….
Code: Alle auswählen
# -*- 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)
- Installierte WAPT-Version (2.1.0 Enterprise)
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
-
pierre.baridon
- Nachrichten: 12
- Anmeldung: 14. November 2020 - 10:55 Uhr
- Standort: Clermont-Ferrand
Hallo,
der Test an rund fünfzig Maschinen war erfolgreich; wir gehen nun zur Serienproduktion mit 1700 Maschinen über.
Mit freundlichen Grüßen,
Pierre
der Test an rund fünfzig Maschinen war erfolgreich; wir gehen nun zur Serienproduktion mit 1700 Maschinen über.
Mit freundlichen Grüßen,
Pierre
- Installierte WAPT-Version (2.1.0 Enterprise)
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
- Server-Betriebssystem: Debian
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Guten Morgen,
Vielen Dank für Ihr Feedback, ich habe das Paket entsprechend angepasst.
Haben Sie Rückmeldungen von Nutzern erhalten, die sich sehr regelmäßig, teilweise sogar täglich, erneut mit Teams verbinden mussten?
Für den Fall, dass ich das Profil einmalig bereinigt habe, hier der Codeausschnitt.
Wir müssen noch überprüfen, ob die Option beim nächsten Update nicht verschwindet, aber es sollte alles in Ordnung sein 
Aufrichtig,
Jimmy
Vielen Dank für Ihr Feedback, ich habe das Paket entsprechend angepasst.
Haben Sie Rückmeldungen von Nutzern erhalten, die sich sehr regelmäßig, teilweise sogar täglich, erneut mit Teams verbinden mussten?
Für den Fall, dass ich das Profil einmalig bereinigt habe, hier der Codeausschnitt.
Code: Alle auswählen
# 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')
Aufrichtig,
Jimmy
