recup par vba date de mise en service PC neuf

  • Initiateur de la discussion Initiateur de la discussion fredl
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fredl

XLDnaute Impliqué
Bonjour à tous,
Et merci d'avance pour l'aide que vous pourrez m'apporter.

je suis correspondant informatique d'un parc de 300 PC
Je souhaite par vba sonder ces PC afin de connaitre au mieux leur date de mise en service (tous ces Pc ayant été achetés neuf et ajoutés à mon parc).
Auriez vous une idée de l'endroit où l'on pourrait sonder ces dernier par vba pour en retirer une date qui s'approcherait au mieux de celle que je recherche?
Par ailleurs, quelle ligne de code me permettrait de faire ce sondage?
(les PC pouvant etre sous plusieurs systeme d'exploitations windows différents...actuellement wXP,office2003 et Wseven,office 2010)

Merci beaucoup pour votre aide.

Frédéric
 
Re : recup par vba date de mise en service PC neuf

Re, Bonjour David

Pour les scories, voir cet citation issu du net 🙂.

Connaissance résiduelle d’un paradigme de pensée tombé en désuétude. tout terrain gagné illumine et occulte l'histoire des sciences, à des rythmes aléatoires : l'invention courante découvre des précurseurs, en oubliant d'anciennes origines destinées à devenir des scories. En crise souvent, la mathématique est toujours en train de la résoudre. — (Michel Serres, Les origines de la géométrie, 1993, ISBN 978-2-0812-6070-2, p. 22)

Dans notre cas, cela pourrait être des fichiers laissés par l'ancienne config de Windows.

Et sinon, cela te sert à quoi de connaître la date de la première mise en service du premier OS?
 
Re : recup par vba date de mise en service PC neuf

Bonjour MJ13,
Dans le cadre de la gestion d'un parc informatique de 300 PC, je cherche un moyen par VBA de connaitre la date d'installation(mise en service) d'un PC (aquis neuf) neuf afin d'en determiner son "Age"(nb d'années de fonctionnement.).
Apres 5 ans de fonctionnement, nous les renouvelons.
Je cherche donc à obtenir cette info en sondant le PC par VBA...

pour l'instant la seule information que nous ayons trouvée est le date d'installation de windows.

Hors dans la vie d'un PC, ce dernier peut connaitre plusieurs installations...(refonte PC).
La derniere date d'install de windows ne reflette donc pas toujours la date de mise en service...

Si tu as des idées....Je suis vivement interessé!

Merci d'avance pour ton aide.

Bonne journée à tous

Fred
 
Re : recup par vba date de mise en service PC neuf

Re

Si tu as des idées....Je suis vivement interessé!

Une des meilleures idée que je connaisse, c'est de faire une petite base de données sur Excel avec les caractéristiques du PC avec le type, la date de mise en service, le système d'exploitation, la capacité du DD, les numéros de séries, les pannes rencontrées...

Ainsi aujourd'hui, tu filtres sur 5 ans, et tu sais tout de suite les PC à remplacer. De plus pour la maintenance, c'est comme même plus simple pour appeler le SAV 🙂.
 
Re : recup par vba date de mise en service PC neuf

Bonjour,

histoire de creuser ta question, j'ai effectué quelques tests sur mon ordinateur :
- date inscrite sur la facture d'achat de l'ordinateur : 27/07/2011
- date d'installation du système d'exploitation ramené par le code que je t'ai fourni : 28/07/2011
Cette date me semble cohérente par rapport à ta demande.

Par acquis de conscience, j'ai également testé la date de création du dossier Windows par le biais du code suivant (même idée que Chris) :
Code:
'cocher la référence Microsoft Scripting Runtime
Sub DateRepWindows()
Dim oFSO As Scripting.FileSystemObject
Dim oFld As Scripting.Folder
    Set oFSO = New Scripting.FileSystemObject
    Set oFld = oFSO.GetFolder("C:\Windows")
    MsgBox oFld.DateCreated
End Sub
Date ramenée : 14/07/2009 😕
Cette date ne semble pas cohérente.

Il serait bien que tu testes de ton côté les différentes propositions et que tu nous fasse un retour.

Du côté de WMI, il y aurait plein d'infos susceptibles de t'aider dans ta mission (je ne te parle pas uniquement de l'objet de ce fil) et que tu pourrais peut-être utiliser (version de l'OS, date et heure du dernier rebootage, architecture de l'OS, nom de l'OS, nom de l'utilisateur enregistré, n° de série, informations sur les ordinateurs du réseau, etc.) et peut-être que cela vaudrait le coup de t'y intéresser si tu ne connais pas la bête.

Je t'ai également retravaillé le code de manière à ce que tu puisses obtenir une date exploitable, ai déclaré les variables en EarlyBinding (liaison anticipée) de manière à ce que tu puisses bénéficier de l'autocomplétion du code (plus facile si tu veux appréhender l'objet) :
Code:
'cocher la référence Microsoft WMI Scripting v1.2 Library
Sub Date_installation_OS()
Dim strComputer As String
Dim objWMIService As SWbemServicesEx
Dim colOperatingSystems As SWbemObjectSet
Dim objOperatingSystem As WbemScripting.SWbemObjectEx
Dim DateInstal, PosSigne, NegSigne
Dim LaDate As Date
Dim Heure As Date
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\\" _
     & strComputer & "\root\cimv2")
 Set colOperatingSystems = objWMIService.Execquery _
     ("Select * from Win32_OperatingSystem")
 For Each objOperatingSystem In colOperatingSystems
    DateInstal = objOperatingSystem.InstallDate
    If DateInstal Like "*+*" Or DateInstal Like "*-*" Then
        PosSigne = InStr(1, DateInstal, "+")
        NegSigne = InStr(1, DateInstal, "-")
    End If
    
    Select Case True
    Case PosSigne > 0
        HeureGmt = CDbl(Mid(DateInstal, PosSigne + 1, Len(DateInstal) - PosSigne))
        Heure = TimeSerial(Mid(DateInstal, 9, 2) + HeureGmt / 60, _
        Mid(DateInstal, 11, 2), Mid(DateInstal, 13, 2))
    Case NegSigne > 0
        HeureGmt = CDbl(Mid(DateInstal, NegSigne + 1, Len(DateInstal) - NegSigne))
        Heure = TimeSerial(Mid(DateInstal, 9, 2) - HeureGmt / 60, _
        Mid(DateInstal, 11, 2), Mid(DateInstal, 13, 2))
    Case Else
        Heure = TimeSerial(Mid(DateInstal, 9, 2), _
        Mid(DateInstal, 11, 2), Mid(DateInstal, 13, 2))
    End Select
    LaDate = DateSerial(Mid(DateInstal, 1, 4), Mid(DateInstal, 5, 2), Mid(DateInstal, 7, 2))
    MsgBox "Date d'installation du système d'exploitation sur l'ordinateur :" & vbCrLf & _
    "le " & LaDate & " à " & Heure
 Next
 End Sub
Pense bien à cocher la référence Microsoft WMI Scripting v1.2 Library
Je ne l'ai pas testé sur 2003, donc je ne sais pas si cette DLL existe sur cette version.
A+
 
Re : recup par vba date de mise en service PC neuf

Bonsoir,
ci-joint une version bien plus courte pour récupérer la date formatée d'installation de l'OS (trouvée sur les pages WMI du site msdn) :
Code:
Sub Format_DateInstal_OS()
Set DateHeure = CreateObject("WbemScripting.SWbemDateTime")
For Each OS In GetObject( _
    "winmgmts:").InstancesOf("Win32_OperatingSystem")
    DateHeure.Value = OS.InstallDate
    MsgBox "Date d'installation du système d'exploitation sur l'ordinateur :" & vbCrLf & _
    DateHeure.GetVarDate
Next
Set DateHeure = Nothing
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
3 K
Retour