Pagina 1 di 1

Licenze di prova di concetto per ufficio

Pubblicato: 17 giugno 2020 - 11:25
di Jordi
Ciao a tutti,
In seguito alla discussione con Vincent e Yohannès, ecco un piccolo POC per proseguire sulla gestione delle chiavi di Office.

Il problema:

Nel nostro centro disponiamo di licenze multilicenza per Office 2016, ma abbiamo una o più chiavi per sito.
La gestione con lo strumento VAMT di Microsoft è un po' noiosa (è necessario avviare manualmente l'inventario in VAMT e i dati vengono caricati solo se le workstation corrispondenti sono connesse)

Packet Wapt, un possibile approccio

Ho creato un pacchetto chiamato ef-check-office2016-licence.
Ecco il file setup.py:

Codice: Seleziona tutto

# -*- 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()
Pertanto, il controllo di questo pacchetto visualizzerà un Avviso o un OK, ma memorizzerà anche gli ultimi 5 caratteri della chiave di Office in last_audit_output.

Ho creato una tabella "ufficio" nel database WAPT e l'ho riempita con le mie chiavi:
ufficio.PNG
office.PNG (11,53 KB) Visualizzato 15094 volte
E nella sezione report ho inserito la seguente query:

Codice: Seleziona tutto

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;
Ciò porta al seguente risultato:
segnalazione.PNG
reporting.PNG (17,31 KB) Visualizzato 15094 volte
Ci sarà anche la possibilità di fare altre richieste utili come:
- tutti i post in stato di avviso (GVLK)
- o anche il metodo "raggruppa per" per verificare che le quote di licenza non vengano superate

Spero che questa "Prova di concetto" vi ispiri.
Buona giornata
Jordi

Re: Licenze di prova di concetto di Office

Pubblicato: 17 giugno 2020 - 18:13
di sfontenau
Eccellente !

Re: Licenze di prova di concetto di Office

Pubblicato: 17 giugno 2020 - 20:04
di vcardon
Jordi, sei un vero Gran Maestro WAPT!

Ti avevo parlato di questo approccio e tu l'hai messo in pratica: semplicemente fantastico!

Stammi bene e continua a fare cose straordinarie come questa, cose che aiutano te e che aiuteranno anche tantissime altre persone.

Cordiali saluti,

Vincent

Re: Licenze di prova di concetto di Office

Pubblicato: 5 novembre 2020 - 13:54
di Jordi
Qualche minuto di riposo, perfetto per rilassare la mente mentre si lavora su una query SQL :-)
La struttura della tabella "ufficio" non è cambiata.

Nuova richiesta:
utilizzo.PNG
usage.PNG (69,59 KB) Visualizzato 14676 volte
Buona giornata !