Eseguire uno script AutoIt come amministratore locale?

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

13 giugno 2018 - 16:55

Ciao,

sto facendo buoni progressi con WAPT e nella creazione e modifica di pacchetti esistenti.

Per scopi didattici, devo installare un'applicazione che richiede, al primo avvio (e solo in quel caso), all'utente di inserire nome, organizzazione e numero di serie.

Ho provato diverse soluzioni senza successo finora:
- regShot prima e dopo l'inserimento del numero di serie, quindi esportazione in un file .reg
- esecuzione silenziosa del file .reg dopo l'installazione (tramite la funzione `def install()` nel pacchetto WAPT): il software non si attiva... potrebbero esserci altre modifiche/creazioni di file dopo l'inserimento della licenza.

Un altro test: tramite AutoIt
- installazione dell'applicazione tramite WAPT
- nella funzione `def install()` di WAPT, esecuzione di uno script AutoIt per avviare l'applicazione e simulare l'input da tastiera...
Il programma si installa correttamente, ma il problema è che lo script AutoIt viene eseguito con l'account di sistema... e il programma, se avviato con l'account di sistema, non sembra riconoscere lo script.

Nel mio script AutoIt, ho forzato l'avvio del programma come amministratore locale.
Il programma appare correttamente nei processi, ma il mio script AutoIt (avviato con l'account di sistema) non viene eseguito...
In pratica, mi ritrovo con un programma in esecuzione come amministratore locale e uno script in coda in esecuzione con l'account di sistema.
Avviarli entrambi con l'account di sistema non risolve il problema...

Non ho trovato alcuna opzione nello script Python per richiedere l'esecuzione dello script come amministratore...

Forse esiste un metodo più semplice...?

PS: Installando il software normalmente e poi eseguendo manualmente il mio script AutoIt (come amministratore), l'attivazione ha successo...

Grazie per qualsiasi suggerimento. ;)
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

14 giugno 2018 - 13:45

Ciao,
sono riuscito a contattare l'editore del software che mi ha appena fornito un file di licenza adattato alla mia licenza e alla mia istituzione.
Quindi, copiare e incollare il file di licenza nella posizione corretta dovrebbe andare bene (tramite `def install()`).

Lo sto testando e vi farò sapere. ;)
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

14 giugno 2018 - 15:56

Ancora niente... l'editore mi ha fornito un file di licenza... ma deve essere avviato una volta per attivarlo... peggio ancora, apre una finestra di dialogo... che devo annullare prima di poter vedere finalmente che il software è attivato... Continuo la mia ricerca, ma sto iniziando a rimanere senza idee :rotolo:
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

14 giugno 2018 - 18:13

Due possibili soluzioni? 1.

Creare un'attività pianificata "interattiva" che avvii l'installazione; a mio parere, l'emulazione della tastiera funziona al suo interno.
Un'altra possibile soluzione:

creare un servizio Windows "interattivo" che avvii l'installazione, quindi eseguirlo.

Entrambe le soluzioni sono molto brutte...

Inoltre non riesco a far funzionare `runas` come account di sistema o a usare `psexec` come account di sistema.

Un'altra soluzione:

ho visto un amico farlo.

Integrare il nome utente e la password dell'amministratore in AutoIt (so che è possibile).
Avviare l'installazione di AutoIt in un `session_setup`; AutoIt si avvierà quindi automaticamente come amministratore.

Tuttavia... è facile recuperare la password da AutoIt...

Simon
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

15 giugno 2018 - 08:49

Grazie per i suggerimenti...

Ho un'idea, ma non so se sia fattibile con WAPT:
- installazione silenziosa del programma tramite WAPT (account SYS)
- nel pacchetto WAPT, `def install()`: creazione di un'attività pianificata interattiva all'accesso dell'account Administrator
- in questa attività, apertura del file AutoIt, avvio del programma + simulazione della tastiera
- sempre in AutoIt: eliminazione dell'attività pianificata dell'amministratore + eliminazione del file AutoIt stesso... + riavvio.

Forse una configurazione di sessione sarebbe più semplice? (Non ho ancora testato la configurazione di sessione...)

Cosa ne pensi?
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

15 giugno 2018 - 09:41

Ho appena provato session_setup: funziona bene per il mio amministratore locale... ma il problema è che funziona anche per gli utenti del mio dominio.

Idealmente, l'amministratore dovrebbe avviare la configurazione della sessione una sola volta e il gioco è fatto.

Il documento afferma chiaramente che "Il session_setup per ciascun pacchetto viene eseguito una sola volta per pacchetto o versione del pacchetto e per profilo utente"...Devo trovare un modo per disattivare session_setup dopo che è stato avviato dall'amministratore...".

Attualmente nel mio session_setup():

Codice: Seleziona tutto

run(r'....\fichier_autoIT_activation_logiciel)
Obiettivo finale: session_setup():

Codice: Seleziona tutto

run(r'....\fichier_autoIT_activation_logiciel)
"desactiver le session_setup"
"suppression du fichier fichier_autoIT_activation_logiciel"
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

15 giugno 2018 - 11:13

Il modo più semplice è aggiungere una condizione nella configurazione della sessione.

Codice: Seleziona tutto

if get_current_user() == u'Administrateur':
         run(r'....\fichier_autoIT_activation_logiciel)
Avatar utente
Jonattend
Messaggi: 43
Registrazione: 26 marzo 2018 - 14:45

15 giugno 2018 - 16:51

Uff! Finalmente ce l'ho fatta!

Grazie per il suggerimento su session_setup e get_current_user() ;)

Nel mio def install() installo il software.

In session_setup():

Codice: Seleziona tutto

if get_current_user() == u'Administrateur':
         run(r'....\fichier_autoIT_activation_logiciel)
         delete_ay_next_reboot("C:\xxxxx\fichier_autoIT_activation_logiciel")
Ho imparato molto da tutto questo :)
Ho un secondo programma software dello stesso tipo, proverò di nuovo e vedrò il risultato.

Risolto!
Versione del server WAPT: 1.8.1 su Debian 10
Versione dell'agente WAPT: 1.8.1.6756
Versione di installazione WAPT: 1.8.1.6756 su Windows10 v1909
Versione di distribuzione WAPT: 1.8.1.6756
Bloccato