Recherche script de récupération

Résolu
Bonjour,

Je recherche un script permettant de récupérer le nom et la version des logiciels installés sur une machine pour ensuite référencer ces informations dans une base de données.

Quelqu'un pourrait-il m'aider?

Merci d'avance.

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Il y a plusieurs méthodes, mais la plus fiable à mon sens est d'aller récupérer les infos directement dans la registry. Le script qui sait faire ça est ici :

    https://ss64.com/nt/installed.txt

    Tu peux très facilement rediriger les résultats vers un fichier texte ou .csv

    1. Merci de ton aide BugCrusher.

      Pourrais-tu m'expliquer comment faire pour rediriger les résultats dans un fichier .csv? (Je t'avou que je ne suis pas un expert en développement)

      Merci d'avance
      1. Voilà ce qui arrive quand on ne teste pas les liens qu'on donne... Te bile pas, le script ne fonctionne pas. En revanche, celui qui suit, il est testé et approuvé :o)

        Il te génère un fichier texte avec les applis installées. Deux choses à savoir :

        1. Le gazier a mis le point d'interrogation à l'envers comme séparateur, mais tu peux le remplacer par ce que tu veux (facile à trouver dans le code).

        2. Le fichier texte est créé à la racine de ton disque C: avec comme nom le nom de ton PC.txt Tu peux changer le chemin, m'enfin bon, au moins comme ça c'est pas dur à trouver :o)

        Voilà le code :

        -------------------------------------------------------

        on error resume next

        Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
        Set objNetwork = CreateObject("Wscript.Network")
        strComputer = objNetwork.ComputerName

        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objTextFile = objFSO.CreateTextFile("c:\" & strcomputer & ".txt", True)

        strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
        strEntry1a = "DisplayName"
        strEntry1b = "QuietDisplayName"

        Set objReg = GetObject("winmgmts://" & strComputer & _
        "/root/default:StdRegProv")
        objReg.EnumKey HKLM, strKey, arrSubkeys

        For Each strSubkey In arrSubkeys
        intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
        strEntry1a, strValue1)
        If intRet1 <> 0 Then
        objReg.GetStringValue HKLM, strKey & strSubkey, _
        strEntry1b, strValue1
        End If
        If strValue1 <> "" Then
        objTextFile.WriteLine strValue1 & "¿ " & strcomputer & "¿"
        End If
        Next

        strKey2 = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\"
        strEntry2a = "DisplayName"
        strEntry2b = "QuietDisplayName"

        Set objReg = GetObject("winmgmts://" & strComputer & _
        "/root/default:StdRegProv")
        objReg.EnumKey HKLM, strKey2, arrSubkeys

        For Each strSubkey In arrSubkeys
        intRet2 = objReg.GetStringValue(HKLM, strKey2 & strSubkey, _
        strEntry2a, strValue2)
        If intRet2 <> 0 Then
        objReg.GetStringValue HKLM, strKey & strSubkey, _
        strEntry2b, strValue2
        End If
        If strValue2 <> "" Then
        objTextFile.WriteLine strValue2 & "¿ " & strcomputer & "¿"
        End If
        Next

        objTextFile.Close
        1. Merci pour ton aide.

          Connaitrais-tu également un moyen de récupérer une liste des tâches planifiées dans un fichier texte.

          J'ai essayé avec la commande suivante "at > taches.txt" mais il ne renvoi pas toutes les taches...
          1. Tu peux essayer schtasks /query, ça devrait normalement tout renvoyer.