none
Sběr informací o HW a SW

    Dotaz

  • Zdravím,

    prosím, potřeboval bych radu z řad MS profíků...Existuje nějaké udělátko (popřípadě vlastní skript, ten vzhledem ohebnosti preferuji), který by mi posbíral informace o celém PC? Jde mi o základní komponenty jako základní deska, pevné disky, grafická karta, procesor, paměti...potřeboval bych ideálně znát samozřejmě kapacitu dané komponenty, výrobce, model.... Ideálně by se mi hodila i informace o tom, jaký operační systém se na PC nachází, nejlépe i s případným MS Office a licenčními klíči k těmto produktům...kdyby to nešlo, tak aspoň ty informace o hardwaru...

    oč mi jde..řekněme, že máte 50 PC, které se čas od času mění, např komponenty nebo celé PC. Zavádět všechny informace ručně je samozřejmě otravné, potřeboval bych, aby mi to sbíral nějaký agent nebo skript.. v linuxu je to docela v pohodě, vše se zapisuje do souborů, takže si vše vytáhnu, rozpársuju a dále zpracovávám...představa je taková, že by se skript spouštěl ihned po najetí do systému a pomocí nějakého dotazu házel přímo do vzdálené MySQL databáze...takže bych měl vždy nejaktuálnější info o HW i SW, aniž bych se o to staral..

    mohl by někdo poradit? Mělo by to být kompatibilní od WinXP výše....skript si klidně napíšu pro každý ze systému zvlášť, pokud to nebude stejné u všech, jen bych potřeboval vědět, kde tyto údaje hledat..

    děkuji,

    LKU

    pondělí 12. listopadu 2012 20:49

Odpovědi

  • ahoj,

    existuje spousta možností jedna je například přes vbs zde:http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/computermanagement/hardware/

    když si výstup skriptu ještě hodíš do souboru, tak máš přesně to, co potřebuješ. Spouštět ho můžeš třebas po spuštění, nebo pokud máte doménu, tak přes GPO

    nedávno po mně chtěl něco podobného kolega, tak se podělím ;) (do určeného umístění ti to vytvoří soubor, který se bude jmenovat jako název PC...když si tam ještě z výše uvedeného odkazu doplníš hodnoty, co potřebuješ, máš hotovo)

    On Error Resume Next
    strUser = "."
    strComputer = "."
    strDomain = "."
    strMemory = ""
    
    i = 1
    
    
    UserName = WScript.CreateObject("WScript.Network").UserName
    ComputerName = WScript.CreateObject("WScript.Network").ComputerName
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("\\cesta v siti\"& ComputerName &".txt", True)
    
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colDiskDrive = objWMIService.ExecQuery ("Select * from Win32_DiskDrive")
    Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 
    Set colBoard = objWMIService.ExecQuery("Select * from Win32_BaseBoard")
    Set colProc = objWMIService.ExecQuery ("Select * from Win32_Processor")
    Set colOS = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory")
    Set colRAM = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray")
    
    For Each objComputer in colComputer 
        objTextFile.WriteLine "uzivatel" & vbtab & username 
        objTextFile.WriteLine "pocitac" & vbtab & computername & vbcrlf & vbcrlf
    Next
    
    For Each objItem In colItems
    
    	if strMemory <> "" then strMemory = strMemory & vbcrlf
    	strMemory = strMemory &  "Bank" & i & " : " & (objItem.Capacity / 1048576) & " Mb        " & objItem.Speed & "MHz      " & objItem.BankLabel
    	i = i + 1
    Next
    installedModules = i - 1
    For Each objRAM in colRAM
    	totalSlots = objRAM.MemoryDevices
    Next
    
    objTextFile.WriteLine "Total Slots: " & totalSlots & vbcrlf & _
    	     "Free Slots: " & (totalSlots - installedModules) & vbcrlf & _
    	     vbcrlf & "Installed Modules:" & vbcrlf & strMemory  & vbcrlf & vbcrlf 
    
    
    For Each objProc in colProc 
        objTextFile.WriteLine "CPU" 
        objTextFile.WriteLine objProc.Name
        objTextFile.WriteLine "taktovaci frekvence procesoru - MHz:" & objProc.CurrentClockSpeed  & vbCr
    Next
                                                                           
    For Each objBoard in colBoard 
        objTextFile.WriteLine "Mother Board"
        objTextFile.WriteLine "vyrobce: " & objBoard.Manufacturer 
        objTextFile.WriteLine "typ MB:" & objBoard.Product & vbCr         
    Next
                                                                       
    For Each objDiskDrive in colDiskDrive 
        objTextFile.WriteLine "HDD"
        objTextFile.WriteLine "jmeno: " & objDiskDrive.Caption
        objTextFile.WriteLine "velikost: " & objDiskDrive.Size & vbCr   
    Next
    
    For Each objOS in colOS
        objTextFile.WriteLine objOS.Caption
        objTextFile.WriteLine "Cislo sestaveni " & objOS.BuildNumber
        'objTextFile.WriteLine "Typ sestaveni " & objOS.BuildType
        objTextFile.WriteLine "SN " & objOS.SerialNumber
        objTextFile.WriteLine "Verze " & objOS.OSType  & vbCr
    Next
    objTextFile.Close

    • Označen jako odpověď středa 14. listopadu 2012 12:39
    úterý 13. listopadu 2012 6:23
  • http://www.piriform.com/speccy , lze stahnout i portable verzi, ktera se neinstaluje.

    Zjisti napriklad i vyrobce pameti, typ desky, typ a zaplaty OS, nainstalovane sluzby... Vystup lze ulozit do TXT, nebo XML. Jedinou nevyhodou je nepritomnost command line = na kazdem stroji musite spustit a ulozit rucne.


    • Upravený Miroslav Tiser úterý 13. listopadu 2012 8:39
    • Označen jako odpověď středa 14. listopadu 2012 12:40
    úterý 13. listopadu 2012 8:39
  • Osobne na tieto veci vyuzivam tooly, ktore sa pouzivaju pri vacsich migraciach napriklad z W XP an W 7 a to su:

    • Microsoft ACT - pozbiera ti info o software-i na vsetkych masinach napriklad v domene
    • Microsoft MAP - pozbiera HW informacie o zeleze


    ---------- Ondrej Zilinec - Cievo ----------

    • Navržen jako odpověď Ing. Ondrej Žilinec úterý 13. listopadu 2012 23:24
    • Označen jako odpověď středa 14. listopadu 2012 12:40
    úterý 13. listopadu 2012 23:24

Všechny reakce

  • EDIT: Noo, tak hodně mi prozradí v cmd "systeminfo", který bude fungovat pravděpodobně v každém systému.. To mi řekne alespoň o operačním systému něco..něco málo i k HW. Jen model procesoru mi moc neseděl a chybí model operační paměti a absence pevného disku ...kdyby něco podobného bylo i pro hardware, tak by to bylo supr

    EDIT:

    wow, utilita systemsuite ...jen ještě musím přijít na to, jak to použít plně konzolově a výstup hodit do souboru..Toto udělátko řekne přesný typ procesoru, grafické karty a dokonce stav místa na discích ...jen mi zatím neřekl model pevných disků a paměti...ale to asi bude možné nějakým parametrem.....doufám...

    • Upravený pondělí 12. listopadu 2012 21:30
    pondělí 12. listopadu 2012 21:21
  • ahoj,

    existuje spousta možností jedna je například přes vbs zde:http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/computermanagement/hardware/

    když si výstup skriptu ještě hodíš do souboru, tak máš přesně to, co potřebuješ. Spouštět ho můžeš třebas po spuštění, nebo pokud máte doménu, tak přes GPO

    nedávno po mně chtěl něco podobného kolega, tak se podělím ;) (do určeného umístění ti to vytvoří soubor, který se bude jmenovat jako název PC...když si tam ještě z výše uvedeného odkazu doplníš hodnoty, co potřebuješ, máš hotovo)

    On Error Resume Next
    strUser = "."
    strComputer = "."
    strDomain = "."
    strMemory = ""
    
    i = 1
    
    
    UserName = WScript.CreateObject("WScript.Network").UserName
    ComputerName = WScript.CreateObject("WScript.Network").ComputerName
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("\\cesta v siti\"& ComputerName &".txt", True)
    
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colDiskDrive = objWMIService.ExecQuery ("Select * from Win32_DiskDrive")
    Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 
    Set colBoard = objWMIService.ExecQuery("Select * from Win32_BaseBoard")
    Set colProc = objWMIService.ExecQuery ("Select * from Win32_Processor")
    Set colOS = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory")
    Set colRAM = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray")
    
    For Each objComputer in colComputer 
        objTextFile.WriteLine "uzivatel" & vbtab & username 
        objTextFile.WriteLine "pocitac" & vbtab & computername & vbcrlf & vbcrlf
    Next
    
    For Each objItem In colItems
    
    	if strMemory <> "" then strMemory = strMemory & vbcrlf
    	strMemory = strMemory &  "Bank" & i & " : " & (objItem.Capacity / 1048576) & " Mb        " & objItem.Speed & "MHz      " & objItem.BankLabel
    	i = i + 1
    Next
    installedModules = i - 1
    For Each objRAM in colRAM
    	totalSlots = objRAM.MemoryDevices
    Next
    
    objTextFile.WriteLine "Total Slots: " & totalSlots & vbcrlf & _
    	     "Free Slots: " & (totalSlots - installedModules) & vbcrlf & _
    	     vbcrlf & "Installed Modules:" & vbcrlf & strMemory  & vbcrlf & vbcrlf 
    
    
    For Each objProc in colProc 
        objTextFile.WriteLine "CPU" 
        objTextFile.WriteLine objProc.Name
        objTextFile.WriteLine "taktovaci frekvence procesoru - MHz:" & objProc.CurrentClockSpeed  & vbCr
    Next
                                                                           
    For Each objBoard in colBoard 
        objTextFile.WriteLine "Mother Board"
        objTextFile.WriteLine "vyrobce: " & objBoard.Manufacturer 
        objTextFile.WriteLine "typ MB:" & objBoard.Product & vbCr         
    Next
                                                                       
    For Each objDiskDrive in colDiskDrive 
        objTextFile.WriteLine "HDD"
        objTextFile.WriteLine "jmeno: " & objDiskDrive.Caption
        objTextFile.WriteLine "velikost: " & objDiskDrive.Size & vbCr   
    Next
    
    For Each objOS in colOS
        objTextFile.WriteLine objOS.Caption
        objTextFile.WriteLine "Cislo sestaveni " & objOS.BuildNumber
        'objTextFile.WriteLine "Typ sestaveni " & objOS.BuildType
        objTextFile.WriteLine "SN " & objOS.SerialNumber
        objTextFile.WriteLine "Verze " & objOS.OSType  & vbCr
    Next
    objTextFile.Close

    • Označen jako odpověď středa 14. listopadu 2012 12:39
    úterý 13. listopadu 2012 6:23
  • http://www.piriform.com/speccy , lze stahnout i portable verzi, ktera se neinstaluje.

    Zjisti napriklad i vyrobce pameti, typ desky, typ a zaplaty OS, nainstalovane sluzby... Vystup lze ulozit do TXT, nebo XML. Jedinou nevyhodou je nepritomnost command line = na kazdem stroji musite spustit a ulozit rucne.


    • Upravený Miroslav Tiser úterý 13. listopadu 2012 8:39
    • Označen jako odpověď středa 14. listopadu 2012 12:40
    úterý 13. listopadu 2012 8:39
  • 1. Myslim, ze neni zadny nastroj, ktery by pokryl vsechny pozadavky najednou.

    2. Muzete si napsat skripty v Powershellu (respektive zaintegrovat to, co uz nekdo napsal)

    3. Muzete pouzit profi systemy, pokud to finance dovoli (MS, CA,...)

    M.

    úterý 13. listopadu 2012 9:54
    Moderátor
  • Noo, ten skript vypadá schopně, ten by se dal i upravovat..jen teda nejsem moc windows guru, jakým způsobem se to spouští? Zkusil jsem to hodit do standartního dávkového souboru *.bat, ale to moc úspech neslavilo :) Pokud tam teda není ještě jiná finta..

    děkuji

    úterý 13. listopadu 2012 22:31
  • 1. Koncovka je vbs

    2. Pokud nechcete, aby se system na neco ptal, respektive, abyste neco potvrzoval,  tak pouzijte cscript

    3. Pro PowerShell skripty je koncovka ps1. Skriptu je na webu uz "hafo", takze si to muzete poskladat.

    M.

    úterý 13. listopadu 2012 23:00
    Moderátor
  • Osobne na tieto veci vyuzivam tooly, ktore sa pouzivaju pri vacsich migraciach napriklad z W XP an W 7 a to su:

    • Microsoft ACT - pozbiera ti info o software-i na vsetkych masinach napriklad v domene
    • Microsoft MAP - pozbiera HW informacie o zeleze


    ---------- Ondrej Zilinec - Cievo ----------

    • Navržen jako odpověď Ing. Ondrej Žilinec úterý 13. listopadu 2012 23:24
    • Označen jako odpověď středa 14. listopadu 2012 12:40
    úterý 13. listopadu 2012 23:24
  • Tak změnil jsem jen cestu, kde se mi má vytvářet texťák a výsledek:

    Uzivatel test

    pocitac test-pc Total Slots: Free Slots: -1 Installed Modules:  CPU Mother Board HDD

    Doplnilo to username a název PC..jen nějak postrádám zbytek :) Ikdyž, testuji to na win 7, dotaz jsem napsal do sekce win XP, tak nevím, jestli není chyba v tomhle nebo mi chybí něco někde ještě vyplnit..

    No a pokud to bude fungovat tak, že si z toho prvního odkazu tam nahážu co budu potřebovat, tak to bude maximálně dostačující...

    středa 14. listopadu 2012 11:44
  • funguje to na vsech systemech, pokud se bavime o tom skriptu, co jsem sem pastnul ja ;)

    vysledek by mel vypadat takto:

    uzivatel u443
    pocitac VS08

    Total Slots: 2
    Free Slots: 0

    Installed Modules:
    Bank1 : 2048 Mb        800MHz      CHAN A DIMM 0
    Bank2 : 512 Mb        800MHz      CHAN A DIMM 1


    CPU
    Intel(R) Core(TM)2 Duo CPU     E7300  @ 2.66GHz
    taktovaci frekvence procesoru - MHz:2660

    Mother Board
    vyrobce: Intel Corporation
    typ MB:DG31PR

    HDD
    jmeno: ST380815AS ATA Device
    velikost: 80023749120

    Microsoft Windows 7 Professional
    Cislo sestaveni 7600
    SN 00371-OEM-9044022-92681
    Verze 18

    zkus si mezi ty radky napsat wscript.echo objproc.name atp, aby si zjistil, co ti to vraci

    středa 14. listopadu 2012 12:01
  • Tak zkusil jsem to na jiném stroji (Windows Server 2003) a funguje jak má..dobré, s tím už polaboruji..

    děkuji za pomoc, moc dobré udělátko, které se dá pěkně ohýbat..dobrá práce :)

    Na ostatní zde doporučené softwary mrknu také ať mám přehled..

    díky pánové..

    L

    středa 14. listopadu 2012 12:39
  • Tak byla mi doporučena ještě jedna utilitka...to je ale teda velká paráda. Kdo popisovaný problém bude někdy řešit, pojďte do toho :)

    http://www.pxserver.com/WinAudit.htm

    Stačí stáhnout a spustit..je to jeden exe soubor, žádná instalace..

    Hned první klik na spuštění auditu myslím přesvědčí...má to i konzolovou verzi, lze si includovat na výstupy jen takové sekce v oblasti HW nebo SW, které požadujete, dokumentace ke konzoli je zde:

    http://www.pxserver.com/WinAudit/hlp_command_line.html

    a již tradiční: Winaudit.exe /?

    supr podrobná věc...

    středa 14. listopadu 2012 19:01