Página 1 de 1

Licencias de prueba de concepto de Office

Publicado: 17 de junio de 2020 - 11:25
por Jordi
Hola a todos,
Tras una discusión con Vincent y Yohannès, aquí os dejamos un pequeño POC para continuar con la gestión de las llaves de Office.

El problema:

En nuestro centro disponemos de licencias por volumen de Office 2016 pero disponemos de una o más claves por sitio.
La administración con la herramienta VAMT de Microsoft es un poco tediosa (hay que iniciar manualmente el inventario en VAMT y los datos solo se cargan si las estaciones de trabajo correspondientes están conectadas)

Packet Wapt, un posible enfoque

Creé un paquete llamado ef-check-office2016-licence.
Aquí está el archivo setup.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

pgmsoffice = programfiles
def install():
    return 0
def audit():

    pathosppvbs = makepath(pgmsoffice,'Microsoft Office','Office16','OSPP.VBS')
    dstatus = run('cscript "%s" /dstatus'  % pathosppvbs)
    if '---NOTIFICATIONS---' in dstatus:
        print("GVLK")
        return "WARNING"
    elif '---LICENSED---' in dstatus:
        line = dstatus.split("\n")
        for i in line:
            if ('Last 5 characters of installed product key: ') in i:
                key = i.split("Last 5 characters of installed product key: ")
                print(key[1][0:5])
        return "OK"

if __name__ == '__main__':
    audit()
Por lo tanto, la auditoría de este paquete mostrará una Advertencia o un OK, pero también almacenará los últimos 5 caracteres de la clave de Office en last_audit_output.

Creé una tabla "oficina" en la base de datos WAPT y la llené con mis claves:
oficina.PNG
office.PNG (11,53 KB) Visto 15102 veces
Y en la sección de informes ingresé la siguiente consulta:

Código: Seleccionar todo

SELECT hosts.computer_name,
    hostpackagesstatus.last_audit_status AS licence_status,
    SUBSTRING(hostpackagesstatus.last_audit_output from 0 for 6) AS partial_key,
    office.fullkey,
    office.site,
    office.description,
    office.max_allowed
FROM hosts
LEFT JOIN hostpackagesstatus on hosts.uuid = hostpackagesstatus.host_id AND hostpackagesstatus.package = 'ef-check-office2016-licence'
LEFT JOIN office on office.id LIKE SUBSTRING(hostpackagesstatus.last_audit_output from 0 for 6)
ORDER BY office.site;
Esto conduce al siguiente resultado:
reportando.PNG
reportando.PNG (17,31 KB) Visto 15102 veces
También existirá la posibilidad de realizar otras solicitudes útiles como:
- todas las publicaciones en advertencia (GVLK)
- o incluso el método "agrupar por" para verificar que no se excedan las cuotas de licencias

Espero que esta "Prueba de Concepto" te inspire.
Buen día
Jordi

Re: Licencias de prueba de concepto de Office

Publicado: 17 de junio de 2020 - 18:13
por sfonteneau
Excelente !

Re: Licencias de prueba de concepto de Office

Publicado: 17 de junio de 2020 - 20:04
por vcardon
¡Jordi, eres un verdadero Gran Maestro de WAPT!

Te hablé de este método y lo implementaste, ¡simplemente genial!

Cuídate y sigue haciendo cosas increíbles como esta, cosas que te ayudan a ti y que también ayudarán a muchísimas otras personas.

Un cordial saludo,

Vincent

Re: Licencias de prueba de concepto de Office

Publicado: 5 de noviembre de 2020 - 13:54
por Jordi
Unos minutos de descanso, perfectos para relajar la mente mientras trabajas en una consulta SQL :-)
La estructura de la tabla "oficina" no ha cambiado.

Nueva solicitud:
uso.PNG
uso.PNG (69,59 KB) Visto 14684 veces
Buen día !