Consulenze tecnologiche e informatiche
Autotask e MailStore Outook Add-in passando per Powershell

Autotask e MailStore Outook Add-in passando per Powershell

Di nuovo in scena Autotask Endpoint Managment (AEM) e Mailstore server, in un precedente articolo (Come AEM può aggiornare i client MailStore) avevamo visto come aggiornare i due elementi per pc di MailStore server, oggi vedremo come con un nuovo componente è possibile agire sull’installazione di MailStore Outlook Add-in.

In un prossimo articolo parleremo anche del aggiornamento del client dell’applicazione MailStore, appena il componente di AEM sarà pronto e collaudato.

 

Parlando con Claudio Panerai di ACHAB è emerso che stavamo cercando entrambi un componente per eseguire gli aggiornamenti ed in particolare le configurazioni di base delle componenti per computer di MailStore Server, l’estrazione della pagliuzza più corta ha decretato che fossi io a portare avanti il lavoro già in corso ed ultimarlo.

 

Un’altra novità è che questo componente AEM non impiega i soliti script di tipo DOS, ma questa volta si appoggia a Powershell, come forse era intuibile dal precedente articolo: Autotask e Powershell un abbinamento che può non funzionare, dove è presentato un altro componente utile per abilitare e quindi disabilitare la possibilità di eseguire gli script Powershell da remoto, un componente che deve essere usato prima e dopo l’esecuzione di ogni procedura di aggiornamento da remoto attraverso Powershell.

 

Uso del componente per Mailstore Outlook add-in

 

Il componente AEM – Setup MailStore Outlook Add-in (WIN) ha diverse funzioni, controllate da alcune variabili di configurazione, inoltre al suo interno contiene il file di installazione del add-in di MailStore, che per questa edizione è alla versione 10.0.2. Il componente è stato anche provato con le versioni di MailStore server a partire dalla 9.5, oltre che su sistemi operativi Microsoft Windows 7 e 10.

 

Le funzioni svolte dal componente sono così riassumibili:

  • Rimozione dal computer del add-in e cancellazione dai registri della sua configurazione, la funzione viene svolta impostando la variabile Uninstall a True. Può essere eseguito anche in assenza del programma con il solo scopo di rimuovere i dati di configurazione dai registri.
  • Installazione (variabile Install a True) del add-in partendo da un dispositivo pulito, il componente installa il programma caricato al suo interno e crea le chiavi di registro necessarie per l’accesso al server MailStore, vengono inseriti i valori relativi al indirizzo del server (variabile ServerName), alla scelta della criptazione della connessione (variabile Secure), al salvataggio delle credenziali di accesso e al tipo di autenticazione standard. L’utente deve solo inserire il nome utente e la password al primo accesso.
  • Aggiornamento (variabile Install a True) del add-in già installato, in questo caso prima rimuove la vecchia versione e quindi installa quella nuova azzerando la configurazione nei registri e impostando i valori relativi al indirizzo del server (variabile ServerName), alla scelta della criptazione della connessione (variabile Secure), al salvataggio delle credenziali di accesso e al tipo di autenticazione standard. L’utente deve solo inserire il nome utente e la password al primo accesso.
  • Configurazione (variabile Install a False) del add-in installato con l’azzeramento della configurazione nei registri e impostando i valori relativi al indirizzo del server (variabile ServerName), alla scelta della criptazione della connessione (variabile Secure), al salvataggio delle credenziali di accesso e al tipo di autenticazione standard. L’utente deve solo inserire il nome utente e la password al primo accesso.

 

Elementi del componente

 

Come anticipato il componente utilizza le cmdlet di Powershell, che rendono possibile una maggiore estensione delle funzionalità e dei livelli di intervento più profondi nel sistema operativo. La flessibilità del componente passa per le azioni di controllo di esecuzione dei programmi, per le azioni di installazione e rimozione dei programmi e per la manipolazione dei registri di sistema.

 

Vediamo alcuni punti salienti di questi passaggi.

 

La gestione degli argomenti del componente

 

Passaggio degli argomenti da Autotask e PowerShell

Passaggio degli argomenti da Autotask e PowerShell

Il primo passo con i componenti AEM è quello di trasferire le variabili passate al componete AEM allo script Powershell, l’azione non è diretta come avviene per gli script di tipo DOS, dobbiamo quindi richiamare le variabili come se fossero variabili di ambiente.

 

Ad esempio ENV:ServerName

 

Per ottimizzazione di utilizzo del codice, ad esempio nel caso di aggiunta o modifica delle variabili di ingresso, è consigliabile raggruppare questa azione all’inizio dello script e rendere le variabili di ambiente delle variabili locali. In questo modo nel caso di cambio del nome della variabile AEM la correzione sarà solo nella definizione delle variabili.

 

Ad esempio $ServerName = ENV:ServerName

 

Le variabili fornite al componente sono tutte con un valore di default, l’eccezione è l’assegnazione dell’indirizzo del server, pertanto per questa stringa controlliamo che il campo non sia vuoto e nel caso lo sia interrompiamo lo script con un messaggio di errore. Il codice di uscita Exit 1 influenza anche il colore della barra di esecuzione dei job in AEM, rendendola rossa.

 

Dobbiamo inoltre essere certi di controllare nel modo corretto i valori passati dalle variabili del componente, per una variabile usata come semaforo sarebbe sufficiente verificare che esista

 

Ad esempio If ($Install) { … codice …}

 

Se la variabile ha un valore viene eseguito il codice, se non esiste si passa oltre. Le variabili boleane di AEM sono di fatto delle variabili con due valori predefiniti, ovvero true e false, passate al codice con una sintassi completamente minuscola, dobbiamo pertanto controllare il valore passato in relazione alle azioni da eseguire

 

Ad esempio If ($Install -eq “true”) { … codice …}

Oppure If ($Install -eq “false”) { … codice …}

 

Il profilo collegato

 

Per poter agire sui registri del utente dobbiamo determinare quale sia l’utente collegato, oltre a sapere se siamo in un contesto workgroup o di dominio.

 

Determinazione del SID utente nei registri

Determinazione del SID utente nei registri

Richiediamo al sistema alcune informazioni e da queste estraiamo solo la username che ripuliamo dalle informazioni superflue di formattazione, il risultato è una stringa nella forma domain\username.

 

Con uno split separiamo il nome del workgroup o del dominio dalla username, ottenendo due variabili distinte.

 

La richiesta ha un valore null nel caso in cui non sia mai avvenuto un accesso diretto al sistema, questo si verifica nel caso di collegamenti da remoto al sistema, ad esempio per i server. L’assenza di un utente specifica causa l’interruzione dello script con un messaggio di errore.

 

L’esistenza di una username ci permette di procedere chiedendo se il sistema è parte di un dominio e quindi di richiedere con la giusta sintassi il SID del utente al fine di determinare il percorso corretto dei registri di sistema da modificare.

 

Le azioni sui registri

 

Modifica dei contenuti del registro utente

Modifica dei contenuti del registro utente

Il componente opera in modo diretto sui registi di sistema, dove deve interagire con le chiavi presenti nella sezione HKEY_CURRENT_USER\Software\deepinvet, che ospita le configurazioni dei programmi di MailStore, tuttavia l’agente di AEM non è l’utente collegato al sistema operativo e quindi non ha accesso al suo ramo dei registri, pertanto la modifica della sezione è per lui preclusa.

 

Per operare su questo ramo sfruttiamo le caratteristiche del sistema operativo, infatti la chiave HKEY_CURRENT_USER è un puntatore al codice che identifica l’utente nella chiave HKEY_USERS, a tale fine localizziamo l’utente attivo e il suo SID, per poi inizializzare uno spazio disco corrispondente alla chiave HKEY_USERS per poi poter operare nel ramo del utente. Le modifiche apportate a questo ramo si riflettono nella HKEY_CURRENT_USER.

 

Le modifiche sui registri sono estremamente critiche e da eseguire con la massima cautela, il componente AEM oltre ad aggiungere e modificare le chiavi relative agli elementi di configurazione di MailStore ne cancella anche i contenuti nel caso in cui se ne richieda la rimozione.

 

Il programma Outlook è in esecuzione

 

Verificare se Outlook è in esecuzione

Verificare se Outlook è in esecuzione

La peculiarità di AEM è quella di operare mentre l’utente sta lavorando e minimizzando l’impatto sul lavoro, questo significa che durante l’esecuzione del componente il programma Microsoft Outlook potrebbe essere in esecuzione.

 

Il fatto che Microsoft Outlook sia in esecuzione non costituisce un problema, infatti le operazioni su MailStore Outlook Add-in avvengono comunque, tuttavia non aggiornano lo stato del programma di posta, che deve essere riavviato dopo le azioni richieste sul add-in.

 

A tale scopo lo script controlla se il programma di posta è in esecuzione, dando un avviso al utente mediante pop-up e richiedendo il riavvio di Microsoft Outlook al termine delle attività.

 

L’utente non ha modo di interrompere l’attività programmata, per evitare che come di abitudine ne interrompa l’esecuzione creando dei cicli infiniti di aggiornamento.

 

Scarica il componete da qui

 

 

A che versione di MailStore sei rimasto fermo?

 

 

Se sei interessato ad approfondire questi contenuti o ad avere nella tua aziende questi strumenti o i prodotti menzionati, contattaci attraverso la pagina di contatto di questo sito, o se preferisci cercami attraverso la pagina FaceBook o il mio profilo Linkedin.

Per essere informato sui nuovi articoli e contenuti puoi anche iscriverti alle nostre newsletter.

 

 

 

Categorie
Archivi
Count per Day
  • 183Questo articolo:
  • 143062Totale letture:
  • 45Letture odierne:
  • 171Letture di ieri:
  • 21 novembre 2016Dal:
Iscriviti alla Newsletter
Iscriviti alla nostra newsletter ed unisciti ai nostri iscritti.

Seleziona lista (o più di una):




Trattamento dei dati