Vorrei distribuire la versione host di TeamViewer versione 12 con assegnazione automatica al mio account online.
Per fare ciò, distribuisco il file MSI e il file di configurazione TeamViewer_Settings.reg utilizzando lo strumento WAPT. Durante la distribuzione con l'account di sistema del servizio WAPT, il PC non è connesso a Internet (proxy trasparente basato su un account Windows AD). Internet è attivo sul PC solo quando è aperta una sessione utente. Il client host di TeamViewer stabilisce quindi una connessione con i server TeamViewer su Internet e viene "personalizzato": la licenza viene attivata e il file "AssignmentData.json" viene generato nella directory di TeamViewer "C:\Programmi (x86)\TeamViewer".
L'editore di TeamViewer descrive una procedura per assegnare l'ID TeamViewer di un PC a un account online TeamViewer. Per farlo, è necessario eseguire l'utilità "TeamViewer_Assignment.exe" con determinati argomenti.
Sfortunatamente, il file "AssignmentData.json" viene generato con attributi molto limitati, con accesso in lettura solo per il gruppo Administrators locale sul PC.
Se eseguo l'utilità "TeamViewer_Assignment.exe" in "def install()" del pacchetto wapt, non ho alcuna connessione Internet -> non viene generato alcun file "AssignmentData.json", ecc.
Se eseguo l'utilità "TeamViewer_Assignment.exe" in "session_setup", è necessario che un account amministratore sia connesso affinché tutto funzioni. Questo è problematico perché tutti i miei utenti sono "utenti".
Non ho alcuna conoscenza di programmazione Python; sto consultando la documentazione della community e traendo ispirazione dai modelli di pacchetti esistenti. Ho trovato una soluzione alternativa per eseguire l'utilità "TeamViewer_Assignment.exe" come amministratore all'interno di una sessione utente.
È possibile? Se sì, come, oppure hai un altro metodo da suggerire?
Grazie.
Di seguito sono riportati i file sorgente del mio pacchetto (l'utilità "TeamViewer_Assignment.exe" si trova nella directory temporanea):
Codice: Seleziona tutto
from setuphelpers import *
uninstallkey = []
destdir = makepath('c:\\wapt\\temp')
def install():
print('installing atr-teamviewer-host12')
copytree2('temp',destdir,onreplace=default_overwrite_older)
install_msi_if_needed('TeamViewer_Host-xxxxxxxxxx.msi',killbefore=['teamviewer.exe'])
def session_setup():
install_exe_if_needed("%s\TeamViewer_Assignment.exe" % destdir,silentflags='-apitoken 1234567-xxxxxxxxxxxxxxxxxxxx -datafile "${ProgramFiles}\TeamViewer\AssignmentData.json"',accept_returncodes=[0,1],timeout=30)
def uninstall():
print "Remove directory content %s" % destdir
remove_tree(destdir)