Quello che voglio affrontare oggi è un discorso che riguarda la distribuzione manuale, nel caso in cui all’utente non sia comparso a video il messaggio che gli permette di effettuare il salto verso la nuova versione del software di Redmond. Come al solito, mi baso sull’utilizzo di Dell Kace, ma è chiaro che ogni mio script può facilmente essere riadattato a un diverso ambiente o metodo di distribuzione.
Rapida analisi e svolgimento
Il caso tipo prevede un Office 2013 licenziato a nome dell’utente, che dovrà essere aggiornato a 2016. Una qualsiasi versione, sia chiaro, che poi saltare all’ultima patch è sempre semplice (e si fa in completa autonomia dal menu Account di una qualsiasi tra le applicazioni che compongono la suite). Sono partito dal presupposto che la base sia proprio Office 365 ProPlus (2013). Visio e Project, citati nel titolo, verranno in seguito, sempre in upgrade manuale se necessario, anch’essi controllati da uno script.
Prima di partire con l’upgrade vi servirà creare / appoggiarvi a una cartella che sia raggiungibile dalla rete e dai vostri client (aperta in sola lettura per tutti sarà più sufficiente, nda), all’interno della quale depositare i file di installazioni di Office 2016 sia in versione x86 che x64, scaricato tramite C2R, come spiegato in questo articolo, nel paragrafo relativo al metodo Click-to-Run. Quando ho preparato l’ambiente, la versione disponibile sui server di Microsoft era la 16.0.6568.2025, ormai abbondantemente superata nel ramo Current. Nulla cambia. La base potrà essere lei, verrà poi aggiornata in maniera automatica e notificata all’utente per l’installazione finale.
Lo script analizza il sistema, verifica una eventuale presenza di Office 2016 (facendo una query sul registro) e lancia il giusto setup in base all’architettura di sistema, questa la traduzione in soldoni:
set LogLocation=\\FILESERVER\Client_Logs reg query HKLM\SOFTWARE\Microsoft\Office\16.0\ClickToRunStore\Packages\{9AC08E99-230B-47e8-9721-4577B7F124EA} if %errorlevel%==1 (goto SelectOS) else (goto End) :SelectOS if not defined ProgramFiles(x86) goto 32bit else goto 64bit :64bit set DeployServer="\\$SERVERK1000\client\resources\o365\Office-x64 16.0.6568.2025" set ConfigFile="\\$SERVERK1000\client\resources\o365\Office-x64 16.0.6568.2025\configuration.xml" goto DeployOffice :32bit set DeployServer="\\$SERVERK1000\client\resources\o365\Office-x86 16.0.6568.2025" set ConfigFile="\\$SERVERK1000\client\resources\o365\Office-x86 16.0.6568.2025\configuration.xml" goto DeployOffice :DeployOffice echo %date% %time% Setup started. >> %LogLocation%\%computername%.txt %DeployServer%\setup.exe /configure %ConfigFile% echo %date% %time% Setup ended with error code %errorlevel%. >> %LogLocation%\%computername%.txt :End
Ho aggiunto qualche riga di codice in più per permettere allo script di tracciare la sua attività in file di testo, utilizzando una cartella di rete che per l’occasione ho reso scrivibile agli utenti. Cosa sostituire quindi all’interno dello script?
\\FILESERVER\Client_Logs
è la cartella dove depositare i log di cui vi ho appena parlato una riga più sopra.\\$SERVERK1000
è la vostra macchina DELL Kace, o la cartella di rete dove tutti devono poter avere accesso (anche in sola lettura), ciò include ovviamente anche il resto del percorso “\client\resources\eccetera“.
Una volta lanciato lo script sulla macchina interessata, tramite Kace, si noterà l’operazione di upgrade nel Task Manager, rimanendo così invisibile agli occhi dell’utente che dovrà limitarsi a non avviare alcuna applicazione Office nel frattempo (ovviamente sarà stato preventivamente avvisato, con la speranza che poi collabori!):
L’operazione (dipende molto dalla velocità della rete e da quanto il client finale è scarico in termini di lavoro) dura all’incirca 20 minuti, al termine dei quali si potrà accedere alle nuove versioni 2016 degli applicativi Office. A questo punto sarà necessario confermare la password dell’account di posta (che verrà richiesta all’apertura di Outlook, nda) e accettare nuovamente i termini di licenza, quindi dare un semplice OK a video quando vi verrà mostrato il popup con le novità della versione installata.
Potrebbe capitarvi a video un messaggio di errore per installazione danneggiata. Facendo clic su “Ripristina ora“, il programma aperto verrà terminato dopo qualche secondo. Potrete riaprirlo immediatamente, tutto dovrebbe funzionare correttamente.
Visio & Project
Anche noi (in ufficio) abbiamo scelto di far convertire le nostre vecchie licenze MSI (Professional) in paritarie (o quasi) 365 ProPlus. Così facendo è possibile toglierle e metterle direttamente dal pannello di Exchange (ECP), includendole o escludendole sul singolo utente.
Lo script viene pressoché da sé, facile intuire anche il metodo per il download dato che si tratta dello stesso identico utilizzato per Office, con una ovvia modifica al configuration.xml
:
<Configuration> <Add OfficeClientEdition="64" Branch="Current"> <Product ID="VisioProRetail"> <Language ID="it-it" /> </Product> </Add> <Updates Enabled="TRUE" Branch="Current" /> <Display Level="None" AcceptEULA="TRUE" /> <Property Name="AUTOACTIVATE" Value="1" /> </Configuration>
Che, tradotto, permetterà di scaricare l’ultima versione a 64 bit e in italiano del programma Visio, pronto per essere affiancato a un Office 2016 già presente a bordo macchina. Modificate il 64
della OfficeClientEdition
portandolo a 32
se necessario, inserite ProjectProRetail
al posto di VisioProRetail
per cambiare il programma da scaricare / installare. Il risultato lo si porta a casa facilmente, basta sapere cosa si intende ottenere.
L’installazione tramite Kace è un passaggio altrettanto semplice:
set LogLocation=\\FILESERVER\Client_Logs :SelectOS REM Termino le applicazioni di Office lasciate aperte taskkill /IM ONENOTE.EXE /F taskkill /IM OUTLOOK.EXE /F taskkill /IM MSACCESS.EXE /F taskkill /IM MSPUB.EXE /F taskkill /IM WINWORD.EXE /F taskkill /IM EXCEL.EXE /F taskkill /IM POWERPNT.EXE /F REM Verifico il SO if not defined ProgramFiles(x86) goto 32bit :64bit set DeployServer="\\$SERVERK1000\client\resources\o365\Project-x64 16.0.6741.2021" set ConfigFile="\\$SERVERK1000\client\resources\o365\Project-x64 16.0.6741.2021\configuration.xml" goto DeployOffice :32bit set DeployServer="\\$SERVERK1000\client\resources\o365\Project-x86 16.0.6741.2021" set ConfigFile="\\$SERVERK1000\client\resources\o365\Project-x86 16.0.6741.2021\configuration.xml" :DeployOffice echo %date% %time% Setup started. >> %LogLocation%\%computername%_Project16.txt %DeployServer%\setup.exe /configure %ConfigFile% echo %date% %time% Setup ended with error code %errorlevel%. >> %LogLocation%\%computername%_Project16.txt goto End :End echo %date% %time% Project16 batch terminated. >> %LogLocation%\%computername%_Project16.txt
Rispetto allo script precedente, questo si occupa anche di terminare i programmi di Office lasciati aperti, perché in caso contrario l’installazione non potrà essere portata a termine (già provato, nulla da fare, dispiace). Anche stavolta viene prodotto un piccolo file di log per tracciare quanto fatto. Restano identiche le modifiche da eseguire rispetto a quelle che vi ho riportato nel paragrafo precedente. Stupido dirlo: modificando lo script pubblicato qui sopra, potrete ovviamente installare anche Visio (utilizzando un solo batch, oppure creandone uno nuovo e separato).
In conclusione
Più facile scriverlo che realizzarlo, un po’ come succede quasi sempre. Si tratta di batch banali, che chiunque può scrivere in mille modi diversi pur arrivando allo stesso obbiettivo. Una volta ottenuto il materiale necessario, il resto è tutto in discesa. Stiamo portando a termine una migrazione sufficientemente unattended con la collaborazione dei nostri utenti, è questo lo scopo di tutto il gioco. Ogni nuovo consiglio o confronto è ben accetto, l’area commenti è a vostra disposizione (anche senza registrazione).
Riferimenti ad altri articoli
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)