Licences Office Proof Of Concept

Partagez ici vos idées de requêtes SQL pour le reporting dans la console WAPT Enterprise
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée ( 1.6.1 / 1.7.4 / 1.8.2 / etc.) AINSI QUE l'édition Enterprise / Community
* Préciser OS du serveur (Linux / Windows) et version (Debian Stretch/Buster - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets (Windows 7 / 10)
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter Camille ou Faustine au service commercial Tranquil IT au 02.40.97.57.55
Jordi
Messages : 4
Inscription : 20 mars 2020 - 11:11

17 juin 2020 - 11:25

Bonjour à tous,
Suite à une discussion avec Vincent et Yohannès, voici une petite POC à continuer sur la gestion des clés Office.

La problématique:

Dans notre centre, nous avons des licences Office 2016 en volume mais nous avons une voire plusieurs clés par sites.
La gestion avec l'outil VAMT de Microsoft est un peu fastidieuse (il faut manuellement lancer l'inventaire dans VAMT et la remontée ne se fait que si le/les poste(s) en face sont connectés)

Packet Wapt, approche possible

J'ai fait un package ef-check-office2016-licence.
Voici le setup.py:

Code : Tout sélectionner

# -*- 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()
Du coup, l'audit de ce package affichera un Warning ou un OK mais également elle stockera dans last_audit_output les 5 derniers caractères de la clé Office.

J'ai crée une table "office" dans la bdd wapt que j'ai rempli avec mes clés:
office.PNG
office.PNG (11.53 Kio) Consulté 616 fois
Et dans la partie reporting, j'ai fait la requete suivante:

Code : Tout sélectionner

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;
Cela amène au résultat suivant:
reporting.PNG
reporting.PNG (17.31 Kio) Consulté 616 fois
Il y aura également possibilité de faire d'autres requêtes utiles tel que:
- tous les postes en warning (GVLK)
- ou encore du "group by" afin de vérifier que l'on ne dépasse pas les quotas sur les licences

J'espère que cette "Proof of Concept" vous inspirera.
Bonne journée
Jordi
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1184
Inscription : 10 juil. 2014 - 23:52
Contact :

17 juin 2020 - 18:13

Excellent !
Avatar de l’utilisateur
vcardon
Expert WAPT
Messages : 171
Inscription : 06 oct. 2017 - 22:55
Localisation : Nantes, FR

17 juin 2020 - 20:04

Jordi, tu est un Grand Maester du WAPT.

En effet, je t'en avais parlé de cette approche et tu l'as mise en oeuvre, juste trop cool.

Porte toi bien et continue à faire des trucs trop géniaux comme ça, des trucs qui t'aident toi et qui vont aussi aider des tonnes d'autres par la même occasion.

Cordialement.

Vincent
Vincent CARDON
Tranquil IT
Jordi
Messages : 4
Inscription : 20 mars 2020 - 11:11

05 nov. 2020 - 13:54

QQ minutes de repos, parfait pour se détendre l'esprit en faisant une requête SQL :-)
La table "office" n'a pas bougé de structure.

Nouvelle requête:
usage.PNG
usage.PNG (69.59 Kio) Consulté 198 fois
Bonne journée !
Répondre