Pagina 1 di 1

Esecuzione di script VBS tramite il pacchetto Office 2016

Pubblicato: 26 luglio 2018 - 12:32
di Patrice_minagri
Ciao a tutti,

Vi scrivo perché sono un po' confuso. Sto creando un pacchetto per l'installazione di Office 2016, con il quale vorrei gestire in anticipo la rimozione delle versioni precedenti di Office, come 2003, 2007 e 2010.

Per eseguire questa rimozione, ho scaricato gli strumenti Microsoft Fixit per ogni versione di Office. Quando si esegue ogni strumento Fixit, viene creato un file VBScript temporaneo, sufficiente per rimuovere le varie versioni di Office 2003 e altre.

Questi file si chiamano Offscrub03.vbs (per il 2003), Offscrub07.vbs (per il 2007), ecc.

Per disinstallare completamente i prodotti, è sufficiente immettere il seguente comando:

Codice: Seleziona tutto

cscript Offscrub03.vbs /ALL /Q /NoCancel /BYPASS 1


Questo comando funziona perfettamente se inserito direttamente al prompt del DOS.

Tuttavia, nel codice del pacchetto WAPT:

Codice: Seleziona tutto

run('script "Offscrub03.vbs" /ALL /Q /NoCancel /BYPASS 1')
Non funziona. Ricevo il seguente errore:

Codice: Seleziona tutto

<RunOuput returncode :0>
"Microsoft (R) Windows Script Host Version 5.8\r\nCopyright (C) Microsoft Corporation 1996-2001. Tous droits r\x82serv\x82s.\r\n\r\nMicrosoft Customer Support Services - Office 2003 Removal Utility\r\n\r\nVersion: 1.39\r\n64 bit OS: Vrai\r\nStart removal: 26/07/2018 10:53:49\r\n\r\nInsufficient registry access permissions - exiting\r\nc:\\Offscrub03.vbs(119, 5) Erreur d'ex\x82cution Microsoft VBScript: Variable non d\x82finie: 'TmpKeyCleanUp'\r\n\r\n"
Si tratta quindi di diritti che sarebbero insufficienti per accedere al registro.

La mia domanda è questa:
Perché otteniamo due risultati diversi: in un caso i diritti non sembrano affatto un problema, mentre nell'altro lo sono? Esiste un altro modo per farlo?

Grazie mille, miei amici waptiani!

Re: Esecuzione di VBScript tramite il pacchetto Office 2016

Pubblicato: 30 luglio 2018 - 21:56
di vcardon
Ciao Patrice,

il tuo post merita una risposta perché ci conosciamo bene e siamo molto orgogliosi che WAPT sia di interesse per la tua grande e prestigiosa organizzazione (la cui identità non posso rivelare per rispetto della riservatezza).

Non sono un super esperto di WAPT, ma ti suggerirei di creare un nuovo pacchetto di Office 2016 che entri in conflitto con i tuoi pacchetti di Office precedenti. Quindi, cerca "conflitto" nella documentazione di WAPT per maggiori informazioni su questa funzione.

I tuoi pacchetti di Office precedenti, se esistono, avranno una chiave di disinstallazione. Pertanto, eseguendo il pacchetto WAPT per il tuo Office 2016, disinstalleresti le versioni precedenti perché entrerebbero in conflitto con la versione di Office che desideri installare. In questo modo, non avresti bisogno di affidarti a uno specifico VBS di Microsoft: magia!

Questo metodo ha l'ulteriore vantaggio di essere più robusto e più facile da gestire nel tempo.

Al vostro rientro dalle vacanze, parleremo con i signori S. e F. di Tolosa e con i signori A. e D. di Parigi per valutare l'aggiornamento alla versione Enterprise, più adatta alle vostre esigenze.

Nel frattempo, vi auguriamo una splendida estate.

Cordiali saluti,

Vincent

Re: Esecuzione di VBScript tramite il pacchetto Office 2016

Pubblicato: 6 settembre 2018 - 11:26
di htouvet
Sembra che il problema sia "noto":
https://social.technet.microsoft.com/Fo...roprevious
Ho riscontrato lo stesso problema durante l'esecuzione dello script con SCCM 2012 in contesto di sistema su Win7. Per qualche motivo la funzione CheckRegPermissions restituisce false. Quando ho eseguito lo script manualmente con i diritti di amministratore, ha funzionato. Ha funzionato anche quando ho provato con psexec -s \\machine cmd, che avvia un prompt dei comandi in contesto di sistema.

Ho deciso di eliminare il codice in CheckRegPermissions. Ora lo script funziona correttamente e fa quello che dovrebbe.

Function CheckRegPermissions
CheckRegPermissions = True
End Function 'CheckRegPermissions