none
récupération des informations système via WMIC RRS feed

  • Question

  • Bonjour,

    Le code ci-dessous me permet d'avoir les informations de base d'une machine, sauf pour l'écran : je souhaite avoir une ligne pour le modele et une pour le S/N mais je n'ai pas réussi avec la commande wmic desktopmonitor

    Si possible, j'aimerais aussi les infos des imprimantes, je vais chercher ailleurs.

    Merci de votre aide.

    @echo off
    if %os%==Windows_NT goto WINNT
    goto NOCON
    
    :WINNT
    echo .Using a Windows NT based system
    echo ..%computername%
    
    REM set variables
    set system=
    set manufacturer=
    set model=
    set serialnumber=
    set osname=
    set sp=
    set user=
    set ecran1=
    set ecran2=
    
    echo Getting data [Computer: %computername%]...
    echo Please Wait....
    
    REM Get Computer Name
    FOR /F "tokens=2 delims='='" %%A in ('wmic OS Get csname /value') do SET system=%%A
    
    REM Get Computer Manufacturer
    FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Manufacturer /value') do SET manufacturer=%%A
    
    REM Get Computer Model
    FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Model /value') do SET model=%%A
    
    REM Get Computer Serial Number
    FOR /F "tokens=2 delims='='" %%A in ('wmic Bios Get SerialNumber /value') do SET serialnumber=%%A
    
    REM Get Computer OS
    FOR /F "tokens=2 delims='='" %%A in ('wmic os get Name /value') do SET osname=%%A
    FOR /F "tokens=1 delims='|'" %%A in ("%osname%") do SET osname=%%A
    
    REM Get Computer OS SP
    FOR /F "tokens=2 delims='='" %%A in ('wmic os get ServicePackMajorVersion /value') do SET sp=%%A
    
    FOR /F "tokens=2 delims='='" %%A in ('wmic netlogin get Name /value') do SET user=%%A
    
    FOR /F "tokens=2 delims='='" %%A in ('wmic desktopmonitor get Name /value') do SET monitor=%%A
    
    echo done!
    
    echo ----------------
    echo System Name: %system%
    echo Manufacturer: %manufacturer%
    echo Model: %model%
    echo Serial Number: %serialnumber%
    echo Operating System: %osname%
    echo Service Pack: %sp%
    echo Username: %user%
    echo ecran: %monitor%
    echo ----------------
    
    REM Generate file
    SET file="%~dp0%computername%.txt"
    echo ---------------- > %file%
    REM echo Details For %computername%: >> %file%
    REM echo System Name: %system% >> %file%
    echo Serial Number: %serialnumber% >> %file%
    echo username: %user% >> %file%
    REM echo Manufacturer: %manufacturer% >> %file%
    echo Model: %model% >> %file%
    echo ECRAN: %monitor% >> %file%
    REM echo Operating System: %osname% >> %file%
    REM echo Service Pack: %sp% >> %file%
    
    echo ---------------- >> %file%
    
    goto END
    
    :NOCON
    echo Error...Invalid Operating System...
    echo Error...No actions were made...
    goto END
    
    :END
    

    mardi 25 octobre 2016 08:11

Toutes les réponses

  • Bonjour HHHHHHAAAAAAAAAAAAAAAAASSSSSSSSHHHHHHHHHH

    je vous propose ce script powershell

    <#
     Copyrigth www.rootandadmin.com 
    
       System Administrator 
    
       KANDOLO NDJIAPANDA Héritier
        
       Twitter : @heritierkandolo
       Skype : Héritier KANDOLO
       kandolo_heritier@hotmail.com
    #>
    
    $Manufacturer = (Get-WmiObject Win32_ComputerSystemProduct).Vendor
    $Model = (Get-WmiObject Win32_ComputerSystemProduct).Name
    $SerialNumber = (Get-WmiObject Win32_ComputerSystemProduct).IdentifyingNumber
    $OSName = (Get-WmiObject win32_operatingsystem).caption
    $UserName = (Get-WmiObject Win32_ComputerSystem).UserName
    $Ecran = (Get-WmiObject Win32_DesktopMonitor).Name 
    function Get-PrinterUser()
    {
    $Printer= (Get-WmiObject Win32_printer).name
    foreach ($Printer in $Printer)
        {
            $Printer1 += "$Printer, "
        } 
             
    Return "$Printer1, "            
    }
    $Printer= Get-PrinterUser
    $FichierTxt= New-item -Path "E:\" -Name "$env:COMPUTERNAME $Manufacturer $OSName.txt" -Force
    ADD-content -path $FichierTXT -value "==========================================="
    ADD-content -path $FichierTXT -value "Serial Number : $SerialNumber"
    ADD-content -path $FichierTXT -value "UserName      : $UserName"
    ADD-content -path $FichierTXT -value "Model         : $Model"
    ADD-content -path $FichierTXT -value "Ecran         : $Ecran"
    ADD-content -path $FichierTXT -value "Printer       : $Printer"
    ADD-content -path $FichierTXT -value "==========================================="


    merci, a+


    S'il vous plaît n'oubliez pas de &quot;Marquer comme réponse&quot; les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. Héritier KANDOLO. http://www.rootandadmin.com/


    mardi 25 octobre 2016 14:13
  • Bonsoir,

    cette commande vous donnera les variables/propriétés disponibles selon votre écran :

    Get-WmiObject Win32_DesktopMonitor |select *

    Pour les imprimantes :

    Get-WmiObject Win32_printer

    A bientôt,


    Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info

    mardi 25 octobre 2016 21:21
    Modérateur