App-V: Comment générer un rapport concernant l’usage de vos applications

avril 28, 2010

Pour générer des rapports en App-V, vous avez à votre disposition un module de reporting dans la console de management.

Ce module vous permet de générer des rapports en fonctions de vos besoins au travers différents type de rapports:

  • System Utilization
  • Software Audit
  • Application Utilization
  • System Error

Comme exemple, nous allons réaliser un rapport concernant l’utilisation d’une application particulière via l’interface de management et ensuite nous nous connecterons à la base de donnée pour réaliser le même travail mais cette fois directement en SQL. Ce qui peut vous permettre de dépasser certaines limitation du module de reporting.

1. Réaliser un rapport au travers de la console de management:

Dans un premier temps, nous allons définir les paramètres servant à constituer notre rapport.

  • Connectez vous à la console et sélectionnez le module de reporting

App-V Console

  • Un fenêtre vous propose de sélectionner le type de rapport que vous souhaitez, sélectionnez Application Utilization.

App-V Console 2

  • Au choix de la période du rapport, sélectionnez Weekly

App-V Console 3 

  • Maintenant, sélectionnez l’application dont vous désirez connaitre le taux d’utilisation. Dans mon cas, ce sera Microsoft Word 2010

App-V Console 4

A ce stage, notre définition de rapport est créé, c’est à dire qu’il contient toutes les informations nécessaire au traitement des données contenue dans App-V. Il n’y a plus qu’à lancer le traitement :-)

App-V Console 5

  • Faites un clique droit sur votre rapport et sélectionnez Run Report

App-V Console 6

  • Sélectionnez votre intervalle de date

App-V Console 7

  • Tadaaaaaaa Voici notre beau rapport, tout beau, tout frais !!!!

App-V Console 8 

App-V Console 9

  • Vous pouvez exporter le résultat sous forme de fichier PDF ou Excel en sélectionnant le module d’export dans la barre d’outil

App-V Console 11

2. Réaliser un rapport au travers de requêtes SQL:

Les rapports automatiques sont bien sympathiques, mais ils ne nous permettent pas d’avoir une grande finesse dans les résultats que l’on peut obtenir.

Pour augmenter notre productivité en terme de reporting, allons faire un tour directement dans la base de donnée.

Je suis certains qu’il n’y a pas besoin de vous rappeler que travailler directement dans la base de donnée vous oblige à être d’une extrême prudence 😉

L’outil de connexion à la base de donnée n’a que peu d’importance. Dans mon cas, j’utilise la console de gestion de SQL Server (Management Studio).

  • Connectez vous sur votre base de donnée App-V dont le nom par défaut est APPVIRT.
  • Les 2 tables qui vont nous intéresser, dans ce cas ci, sont:
    • APPLICATION_USAGE
    • REPORTING_CLIENT_INFORMATION
  • Et maintenant voici quelques exemples de requêtes qui peuvent vous servir de référence:

Exemple 1:

Sélectionner l’ensemble des applications dont l’ID est 782 ou 781 et tirer le résultat par la date et heure de l’exécution.

1
2
3
4
SELECT *
FROM dbo.APPLICATION_USAGE
WHERE app_id = 782 OR app_id = 781
ORDER BY start_time DESC

Exemple 2:

Sélectionner le dernier enregistrement réalisé par App-V en donnant, entre autre, le nom de la machine et de l’utilisateur.

1
2
3
4
SELECT au.id, au.start_time, au.end_time, au.app_name, au.app_version, au.app_id, au.username, rci.host_name
FROM dbo.APPLICATION_USAGE AS au INNER JOIN
    dbo.REPORTING_CLIENT_INFORMATION AS rci ON au.host_id = rci.host_id
WHERE au.id=IDENT_CURRENT('dbo.APPLICATION_USAGE')

Exemple 3:

Sélectionner les 10 derniers enregistrements concernant 2 applications spécifiques en retournant uniquement les champs désirés.

1
2
3
4
5
SELECT TOP(10)au.id, au.start_time, au.end_time, au.app_name, au.app_version, au.app_id, au.username, rci.host_name
FROM dbo.APPLICATION_USAGE AS au INNER JOIN
    dbo.REPORTING_CLIENT_INFORMATION AS rci ON au.host_id = rci.host_id
WHERE au.app_id = 782 OR au.app_id = 781
ORDER BY id DESC
0

Virtualizer Hyper-V 2008 R2 sous VMware ou Virtualbox, possible?

avril 27, 2010

hyper-v-logo

Je vous l’accorde, virtualizer un serveur Hyper-V est par définition contre nature.

Je me suis penché sur la chose car j’ai du conseiller un ami sur différentes architecture dont une comprenant des solutions basées sur Hyper-V (plus précisément la version gratuite: Hyper-V Server 2008 R2).

Vu que je ne possède pas de machine pour installer Hyper-V, l’idée de le virtualizer m’a traversé l’esprit. Bien évidement, mon sentiment de départ était que cela n’est tout bonnement pas possible.

Pourquoi? Car Hyper-V étant un hyper viseur de type 1, il est prévu pour accéder directement aux composants physique d’une machine (processeurs, mémoire, autres) et qu’en plus il a besoin des jeux d’instructions Intel-Vt / AMD-V. Il n’est donc pas concevable de le virtualiser dans un hyper viseur de type 2 (VMWare Workstation, Virtualbox, VirtualPC).

Pour plus d’informations, c’est ici

Malgré mes certitudes, je me décide tout de même d’investiguer le sujet. On est jamais à l’abri d’une idée de génie de la part d’un spécialiste ou geek ayant réussit l’impensable et ayant partagé son travail sur le net 😀 .

Mon premier constat est que beaucoup de personnes ont émis leurs avis mais que très peu on réellement essayé.

Qu’à cela ne tienne, on est jamais si bien servit que par soit même :-)

Je décide d’utiliser 2 produits pour tenter l’expérience:

 

Installation

Dans les 2 cas, j’ai pu installer sans soucis Hyper-V Server 2008 R2 en prenant comme template:

  • un serveur 2008 R2 dans le cas de VMware
  • un serveur 2008 (64bit) pour Virtualbox.

Voici 2 captures d’écrans après installation:

VM - Hv (VMware workstation)

VirtualBox - Hv(Virtualbox) 

Configuration de l’Hyper-V

La configuration de ce produit est moins “user friendly” qu’il n’y parait, mais pour simplifier les choses, nous allons utiliser l’outil HVRemote qui va nous permettre de configurer correctement le serveur ainsi que notre client.

Petit coup de gueule tout de même, car ce produit est anormalement tordu au niveau de sa configuration. J’espère que Microsoft corrigera le tire dans le futur.

A. Configuration côté serveur

Cette version, étant une version core, ne possède aucun GUI de configuration, tout se fait à partir d’un mode console.

hv - general console

Voici les étapes de configurations du serveur:

  1. Pour donner un nom à votre serveur: option 2
  2. Pour configurer votre interface réseaux: option 8
  3. Pour autoriser le Remote Management: option 4 (activez toutes les options):
    1. Activer la gestion à distance par la console MMC: option 1
    2. Activer Powershell: option 2
    3. Activer la gestion à distance au travers du Server Manager: option 3
  4. Pour créer et ajouter un nouvel utilisateur membre du groupe gérant Hyper-V: option 3

Normalement, cela devrait suffire pour vous permettre de vous connecter et de gérer votre serveur Hyper-V. Et bien non !!!

Copiez l’outil HVRemote sur votre serveur et exécuter les opérations suivantes:

  1. cscript hvremote /firewallwmimgmt:enable
  2. cscript hvremote /firewallhypervmgmt:enable
  3. cscript hvremote /add:votreUtilisateur

B. Configuration côté client

Revenons sur notre hôte (Windows 7) et utilisons également HVRemote pour terminer la configuration.

  1. cscript hvremote /mmc:enable
  2. cscript hvremote /anondcom:grant

 

Gestion de l’Hyper-V

Maintenant que tout est configuré, il ne nous reste plus qu’à utiliser notre console Hyper-V Manager pour nous connecter au serveur.

Pour cela, il faut télécharger les Remote Server Administration Tools de Windows 7.

Une fois installé et exécuté, il nous suffit de donner le nom ou l’adresse IP du serveur pour établir la connexion.

hv - conn

Notez que la console Hyper-V Manager utilise votre utilisateur de session comme mode d’authentification.

Si vous rencontrez cette erreur après vous êtes connecté, redémarrez votre serveur Hyper-V tout en restant connecté avec votre console.

hv - error

Dès que le serveur aura redémarré, vous serrez correctement connecté.

hv - error fix

Limitations

Maintenant que votre serveur Hyper-V est correctement virtualizé et configuré, vous allez pouvoir l’utiliser. Mais …… il ne faut pas rêver, les limitations sont bien présentes pour nous rappeler que ce type d’installation n’est pas réaliste (du moins pour le moment).

En fait, il n’y a qu’une seule limitation mais non des moindres:

  • Impossibilité de démarrer une instance virtuelle au sein de votre Hyper-V.

hv - error 2 (Hyper-V fonctionnant sous VMware Workstation 7)

hv - error 3

(Hyper-V fonctionnant sous Virtualbox)

En se renseignant sur Internet, on apprend que VMware workstation ne serait pas capable de traduire les instruction VT-x/AMD-V (les fameux jeux d’instructions inclus dans les processeurs pour la virtualisation) au contraire de Virtualbox.

Mais malgré cette possibilité, cela ne fonctionne pas.

VirtualBox - ivt

Donc pour résumer, ce type d’installation peut vous permettre uniquement de

  • tester l’OS en tant que tel
  • d’étudier les options présentes en Hyper-V
  • de tester des scripts de maintenances
  • ….

Mais jamais d’utiliser Hyper-V dans cette configuration.

2