Inventaire d'un ordinateur avec windows xp/2003

Soyez le premier à donner votre avis sur cette source.

Vue 23 676 fois - Téléchargée 3 298 fois

Description

Le script VBS fait un résumé complet du matériel et des logiciels installés sur l'ordinateur dans un fichier texte portant le nom de votre ordinateur.

Source / Exemple :


'------------------------------------------------------------------------------
'Ce script est composé de 30 à 40 % du script MemProcDiskInventory.vbs de
'de Mark D. MacLachlan de ITSynergy.
'
'Le reste est ajouté par moi-même afin d'avoir plus de fonctions.
'Auteur: Mathieu Demers (http://www.mathieudemers.com)
'Dates: 1er au 2 avril 2005
'But: Faire un inventaire complet de l'ordinateur, soit:
'       - Du matériel installé
'       - Des périphériques installés
'       - Des logiciels installés
'       - De certaines configurations
'       - De faire certaines recommandations
'
'Le résultat de la vérification aboutit dans un fichier texte appelé
'       inventaireNOMDELORDINATEUR.txt
'------------------------------------------------------------------------------
on error resume Next

Set oShell = CreateObject("wscript.Shell")
Set env = oShell.environment("Process")
strComputer = env.Item("Computername")
Const HKEY_LOCAL_MACHINE = &H80000002
Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
".\root\default:StdRegProv")

report = report & "******************************************" & vbCrLf
report = report & " - Inventaire de l'ordinateur " & strComputer & " - " & vbCrLf
report = report & "******************************************" & vbCrLf & vbCrLf
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)

report = report & vbCrLf & "******************************************" & vbCrLf
report = report & "Informations sur Windows" & vbCrLf & "******************************************" & vbCrLf

For Each objItem in colItems
    report = report &  "- Nom du poste: " & strComputer  & vbCrLf
    report = report &  "- Description de l'ordinateur: " & objItem.Description & vbCrLf
    report = report &  "- Utilisateur possédant la licence Windows: " & objItem.RegisteredUser & vbCrLf
    report = report &  "- Organisation possédant la licence Windows: " & objItem.Organization & vbCrLf
    report = report & "******************************************" & vbCrLf
    report = report &  "- Nom du système d'exploitation: " & objItem.Caption & vbCrLf
    If (objItem.OSProductSuite <> "")Then
        report = report &  "- Système d'exploitation de la suite " & objItem.OSProductSuite & vbCrLf
    End If
    report = report &  "- Version: " & objItem.Version & vbCrLf
    report = report &  "- Date de son installation: " & objItem.InstallDate & vbCrLf
    report = report &  "- Numéro de série de " & objItem.Caption & ": " & objItem.SerialNumber & vbCrLf
    report = report & vbCrLf
    report = report & "******************************************" & vbCrLf
    report = report & "Détails techniques sur Windows"& vbCrlf
    report = report & "******************************************" & vbCrLf
    report = report &  "- Numéro du dernier Service Pack majeur installé: "
    report = report & objItem.ServicePackMajorVersion & vbCrLf
    If (objItem.ServicePackMinorVersion<>0) AND (objItem.ServicePackMinorVersion<>"") Then
        report = report &  "- Numéro du dernier Service Pack mineur installé: " & objItem.ServicePackMinorVersion & vbCrLf
    End If
    report = report &  "- - - - - -" & vbCrLf
    report = report &  "Les Service Pack et les mises-à-jour de sécurité de Windows sont disponibles sur:" & vbCrLf
    report = report &  "===> http://windowsupdate.microsoft.com <===" & vbCrLf
    report = report &  "- - - - - -" & vbCrLf & vbCrLf
    'report = report &  "- Emplacements du système d'exploitation sur l'ordinateur: " & vbCrLf & objItem.Name & vbCrLf
    report = report &  "- Répertoire où Windows est installé: " & objItem.WindowsDirectory & vbCrLf
    report = report &  "- Niveau d'encryption des données: " & objItem.EncryptionLevel & " bits" & vbCrLf
    If (objItem.MaxNumberOfProcesses="-1") Then
        report = report &  "- Maximum de processus pouvant être ouvert: Aucune limite fixée" & vbCrLf
    Else
        report = report &  "- Maximum de processus pouvant être ouvert: " & objItem.MaxNumberOfProcesses & vbCrLf
    End If
Next

Set colBaseBoards =  objWMIService.ExecQuery _
    ("Select * from Win32_BaseBoard")
report = report & vbCrLf & "******************************************" & vbCrLf
report = report & "Carte-mère" & vbCrLf & "******************************************" & vbCrLf

For Each objBaseBoard in colBaseBoards

        report = report & "- Nom: " & objBaseBoard.Name & vbCrLf
        report = report & "- Modèle: " & objBaseBoard.Model & vbCrLf
        report = report & "- Manufacturier: " & objBaseBoard.Manufacturer & vbCrLf
        report = report & "- Numéro de série: " & objBaseBoard.SerialNumber & vbCrLf
        report = report & "- Numéro d'inventaire (SKU): " & objBaseBoard.SKU & vbCrLf
        report = report & vbCrLf
Next

Conclusion :


Le script prend normalement une à deux minutes avant de créer le fichier texte et de se terminer.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
22
Date d'inscription
mardi 28 septembre 2004
Statut
Membre
Dernière intervention
13 septembre 2011

Bonjour,
J'ai regardé votre script. Il est intéressant, mais j n'y ai pas trouvé la réponse à la question qui me taraude depuis plusieurs mois : comment connaitre le nom du profil matériel actif lorsqu'il y a plusieurs profils matériels.
Je m'explique : j'ai créé un deux profils matériel via les propriétés du poste de travail
Dans la fenetre "Propriétés Systeme", onglet /Matétiel\, Bouton [Profils matériels]
apparaît la liste des profils matériel créés sur la machine.
Le profil matériel courrant ou actif est matérialisé par la présence du mot (actuel) entre parentheses.
je voudrais ecrire un script qui test la valeur du nom du profil matériel courrant :

si
profil matériel courrant = "en mode autonome"
alors forcer le lancement du service parefeu xp
sinon si le profil courrant = "rattaché au domaine"
alors stoper le service du parfeu xp
fin si

Mais pour cela il faudrait que j'arrive à recuperer le nom du profil matériel que windows
indique en précisant (actuel).
Ce n'est pas dans les variables d'environnement
je n'ai pas trouver dans la base de registre qq chose qui indiquerait cel

existe t il quelqes instructions en vbs qui ferait mon bonheur ?
Messages postés
8
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
15 mai 2007

Je suis un débutant en vbs et je trouve le vbs très pratique, mais je vous ecris pour savoir s'il est possible d'avoir ttes ces infos mais en tapant le nom d'une machine et on récupére ces infos mais seulement de cette machine.
Je te mets un 9/10.
Merci d'avance et bonne journée.
@+
Messages postés
63
Date d'inscription
dimanche 15 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008

Vive le WMI ;)

jete un coup d'oeil a SASNet sur http://Psykos7.free.fr tu m'en diras des nouvelles (100% WMI et avec beaucoup plus d'infos que ta sources, desolé)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.