Página 1 de 1

Ejecución de scripts VBS a través del paquete de Office 2016

Publicado: 26 de julio de 2018 - 12:32 p. m.
por Patrice_minagri
Hola a todos,

Les escribo porque estoy un poco perdido. Estoy creando un paquete para instalar Office 2016, en el que quiero gestionar la eliminación de versiones anteriores de Office, como 2003, 2007 y 2010, con antelación.

Para realizar esta eliminación, descargué las herramientas Microsoft Fixit para cada versión de Office. Al ejecutar cada herramienta, se crea un archivo VBScript temporal que basta para eliminar las distintas versiones de Office 2003 y otras.

Estos archivos se llaman Offscrub03.vbs (para 2003), Offscrub07.vbs (para 2007), etc.

Para desinstalar completamente los productos, simplemente ingrese el siguiente comando:

Código: Seleccionar todo

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


Este comando funciona perfectamente cuando se ingresa directamente en el símbolo del sistema DOS.

Sin embargo, en el código del paquete WAPT:

Código: Seleccionar todo

run('script "Offscrub03.vbs" /ALL /Q /NoCancel /BYPASS 1')
No funciona. Me aparece el siguiente error:

Código: Seleccionar todo

<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"
Estamos hablando por tanto de derechos que serían insuficientes para acceder al registro.

Mi pregunta es esta:
¿Por qué tenemos dos resultados diferentes? En un caso, los derechos no parecen ser un problema y en el otro sí. ¿Hay otra manera de hacerlo?

¡Muchas gracias mis amigos waptianos!

Re: Ejecución de VBScripts mediante el paquete de Office 2016

Publicado: 30 de julio de 2018 - 21:56
por vcardon
Hola Patrice,

tu publicación merece una respuesta porque nos conocemos bien y nos enorgullece que WAPT sea de interés para tu gran y prestigiosa organización (cuya identidad no puedo revelar por respeto a la confidencialidad).

No soy un experto en WAPT, pero te sugiero crear un nuevo paquete de Office 2016 que entre en conflicto con tus paquetes de Office anteriores. Busca "conflicto" en la documentación de WAPT para obtener más información sobre esta función.

Tus paquetes de Office anteriores, si existen, tendrán una clave de desinstalación. Por lo tanto, al ejecutar el paquete WAPT para Office 2016, se desinstalarían las versiones anteriores, ya que entrarían en conflicto con la versión de Office que deseas instalar. De esta forma, no necesitarías depender de un VBS específico de Microsoft. ¡Es genial!

Este método tiene la ventaja adicional de ser más robusto y fácil de administrar a largo plazo.

Cuando todos regresen de vacaciones, hablaremos con el Sr. S. y el Sr. F. de Toulouse, y con el Sr. A. y el Sr. D. de París, para actualizarles a la versión Enterprise, que se ajusta mejor a sus necesidades.

Mientras tanto, que tengan un excelente verano.

Atentamente,

Vincent

Re: Ejecución de VBScripts mediante el paquete de Office 2016

Publicado: 6 de septiembre de 2018 - 11:26 a. m.
por htouvet
Parece que el problema es "conocido":
https://social.technet.microsoft.com/Fo...roanterior
Tuve el mismo problema al ejecutar el script con SCCM 2012 en contexto de sistema en Win7. Por alguna razón, la función CheckRegPermissions devuelve falso. Cuando ejecuté el script manualmente con derechos de administrador, funcionó. Incluso funcionó cuando lo intenté con psexec -s \\machine cmd, que inicia un símbolo del sistema en contexto de sistema.

Decidí eliminar el código en CheckRegPermissions. El script ahora funciona bien y hace lo que debería.

Function CheckRegPermissions
CheckRegPermissions = True
End Function 'CheckRegPermissions