Powershell : remonter les utilisateurs par processus Query-app

Souvent quand on fait un audit d’un environnement nous avons besoin d’avoir les informations, combien d’utilisateurs utilisent une application serveur, par exemple dans une session Remote desktop ou Citrix. Selon la version du système de publication utilisé, bureau ou application les outils sont différents. Là je vous propose une fonction universelle qui vous permettra d’avoir une remontée sur tout système. Dans cette fonction nous aurons en entrée ordinateur requeté et application, puis en sortie ordinateur, application, utilisateur, mémoire utilisé, à quelle heure l’application à démarrer, l’heure de la requête et le chemin où se trouve l’application.

Dans un premier temps nous allons utiliser le WMI avec la classe Win32_Process

Exemple sur un processus :

get-app-1sur11

get-app-2sur11

Et toute suite nous avons des paramètres qui nous intéressent :

  • Name : pour le nom de l’application, pour cibler l’application il faudra utiliser le paramètre –query de la manière suivante :

Select * la classe Wmi ciblé

Where : La propriété ciblée ici name, puis égale à la valeur recherchée

get-app-3sur11

  • Path : Pour savoir depuis ou l’application s’exécute
  • CreationDate : C’est la date de la création du processus, par contre il y aura un travail de remise en forme pour que ça soit plus compréhensible.

Pour ce faire on applique la méthode  .ConvertToDateTime :

get-app-4sur11

  • WorkingSetSize : il nous sera peut être intéressant de remonter la consommation mémoire des applications à analyser. Ce paramètre est en en octet, exemple ci-dessous pour powershell_ise.exe

get-app-5sur11

  • pour finir qui a exécuté l’applicatif, nous ne l’aurons pas dans les propriétés directement.  Pour ça nous allons regarder les méthodes qui s’appliquent à la classe avec un get-member :

get-app-6sur11

Là nous  récupérons la méthode GetOwner ce qui nous donne le résultat suivant une fois appliquée :

get-app-7sur11

La propriété User  a l’air vraiment intéressante, regardons le résultat qu’on peut en tirer :

get-app-8sur11

Ce n’est pas mal, nous pouvons voir les résultats une fois en forme :

get-app-9sur11

Maintenant il nous reste plus qu’à mettre en forme notre script :

Voici un exemple avec les cibles suivantes:

get-app-10sur11

Nous avons maintenant nos deux paramètres pour une future fonction $server et $application. J’ai rajouté la date du query avec un

J’ai créé aussi un objet : $object il nous sert à la mise en forme du résultat, lors de la boucle de traitement pour le $results puis elle est réinjectée dans  $result

Voilà maintenant notre fonction :

Voici un exemple :

get-app-11sur11

 

louis lejuez

Twitter  

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *