IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Liste des applications installées sur des postes 32 ou 64 bits à distance.


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Liste des applications installées sur des postes 32 ou 64 bits à distance.
    Bonjour,

    Je souhaite récupérer la liste des applications installées sur des postes distant. Cependant, il y a une contrainte, je dois interroger des postes qui peuvent être 32 ou 64 bits. Et souvent même, sur des 64 bits, certaines applications sont installées en 32 bits (au niveau de la clé uninstall).

    Je parcours les postes via ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            private void GetInstalledApps(string hostname, CancellationToken ct)
            {
                RegistryKey regKey = RegistryKey.OpenRemoteBaseKey(
                       RegistryHive.LocalMachine, hostname).OpenSubKey(
                       "SOFTWARE").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Uninstall");
     
                string[] keys = regKey.GetSubKeyNames();
     
                foreach (var key in keys)
                {
                    RegistryKey productKey = regKey.OpenSubKey(key);
                    name = Convert.ToString(productKey.GetValue("DisplayName"));
     
                    if (name != string.Empty)
                    {
                        version = Convert.ToString(productKey.GetValue("DisplayVersion"));
                        publisher = Convert.ToString(productKey.GetValue("Publisher"));
                        installLocation = Convert.ToString(productKey.GetValue("InstallLocation"));
                        packageCode = Convert.ToString(key);
     
                        aList.Add(new AInfos() { Name = name, Version = version, Publisher = publisher, InstallLocation = installLocation, PackageCode = packageCode });
                    }
                }
            }
    Seulement, ça ne me retourne pas toutes les applications (il manque celles qui sont dans la ruche Wow6432Node...).
    J'ai essayer de parcourir les 2 ruches simultanément, mais dans ce cas là, j'obtiens une liste beaucoup trop longue, avec pas mal de doublons, etc...

    La méthode par requête WMI ne me convient pas, car elle met beaucoup trop de temps a retourner un résultat.

    Comment pourrais-je faire pour obtenir une liste précise des applications sur des postes à distance donc, en tenant compte des contraintes que j'ai cité ci-dessus ? Je bloque un peu là.

    Merci par avance.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 687
    Points : 5 277
    Points
    5 277
    Par défaut
    Pour tes doublons, un simple contains et une expression lambda feront l'affaire pour ne pas insérer un élément deux fois.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/04/2017, 19h27
  2. Réponses: 1
    Dernier message: 16/01/2012, 17h32
  3. Travailler sur des vues ou sur des tables, vs performance ?
    Par carjo dans le forum Administration
    Réponses: 3
    Dernier message: 06/02/2009, 13h46
  4. Réponses: 3
    Dernier message: 19/07/2006, 18h33
  5. Réponses: 2
    Dernier message: 19/07/2006, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo