Pagina 1 di 1

Esegui exe come amministratore in una sessione utente

Pubblicato: 3 febbraio 2017 - 17:56
di atriou
Buongiorno,

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)

Re: Esecuzione di un eseguibile come amministratore in una sessione utente

Pubblicato: 6 febbraio 2017 - 09:02
di Aedenth
Buongiorno,

Probabilmente puoi farlo creando un'attività pianificata tramite wapt che viene eseguita una volta all'avvio come amministratore, utilizzando schtasks.

Codice: Seleziona tutto

run(schtasks /create /tn <TaskName>/TR <TaskRun>/SC fois /St <HH:MM>[/sd <StartDate>] [/it] [/ru {[<Domain> \] <User>[/rp <Password>] | Système}] [/ s <Computer>[/u [<Domain> \] <User>[/p <Password>]]]
Doc Schtasks: https://technet.microsoft.com/fr-fr/lib ... #BKMK_once

Re: Esecuzione di un eseguibile come amministratore in una sessione utente

Pubblicato: 6 febbraio 2017 - 23:53
di sfontenau
Potrebbe essere più semplice autorizzare le vostre workstation a connettersi a TeamViewer?

Che tipo di autenticazione utilizzate? NTLM? Kerberos? Qualcos'altro?

Re: Esecuzione di un eseguibile come amministratore in una sessione utente

Pubblicato: 9 febbraio 2017 - 12:05
di atriou
Non ho ancora avuto tempo di testare l'attività pianificata.

I nostri utenti si autenticano alle loro workstation tramite Microsoft Active Directory (livello funzionale 2008, credo), utilizzando l'autenticazione Kerberos.

Invierò un messaggio al supporto di TeamViewer per capire perché il file "AssignmentData.json" viene generato con attributi molto limitati (solo accesso in lettura per il gruppo Administrators locale sul PC).