Script donnant des informations sur le(s) processeur(s)
et la mémoire vive installée et installable
d'un ordinateur, local ou distant
Syntaxe:
infosprocesseur[.vbs] [<machine>]
Paramètres :
<machine> : nom NetBIOS de l'ordinateur
s'il est absent -> machine locale
Source / Exemple :
Const SW_HIDE=0
Const SW_SHOWNORMAL=1
Dim fso,shell,net,args,WMI,col
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject("WScript.Shell")
Set net = Wscript.CreateObject("WScript.Network")
Set args = Wscript.arguments
TestHost true
if args.count=0 then computer=net.computername else computer=args(0)
lMax=17
Set WMI = GetObject("winmgmts:\\" & Computer & "\root\cimv2")
Set col = WMI.ExecQuery("Select * from Win32_Processor",,48)
Infos="Processeur(s) de l'ordinateur " & ucase(computer)
Infos=VBCRLF & Infos & VBCRLF & String(len(Infos),"-") & VBCRLF
For Each Item in col
PrintInfo "Nom",lMax,Item.Name,0,"",""
PrintInfo "Description",lMax,Item.Caption,0,"",""
PrintInfo "Fabricant",lMax,Item.Manufacturer,0,"",""
PrintInfo "Fréquence CPU",lMax,Item.CurrentClockSpeed,4,"MHz",""
PrintInfo "Fréquence CPU max",lMax,Item.MaxClockSpeed,4,"MHz",""
PrintInfo "Fréquence externe",lMax,Item.ExtClock,4,"MHz",""
PrintInfo "Tension",lMax,cint(Item.CurrentVoltage)/10,4,"V",""
PrintInfo "Bus de données",lMax,Item.DataWidth,4,"bits",""
PrintInfo "Socket",lMax,Item.SocketDesignation,0,"",""
Next
Infos=Infos & VBCRLF & VBCRLF & "Mémoire vive installée :" & VBCRLF
Set col = WMI.ExecQuery("Select * from Win32_PhysicalMemory",,48)
total=0
For Each Item in col
capa=Item.Capacity/1024/1024
total=total+capa
PrintInfo "Barrette " & Item.DeviceLocator,lMax,capa,4,"Mo",Item.BankLabel
Next
PrintInfo "TOTAL",lMax,total,4,"Mo",""
Set col = WMI.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each Item in col
RAM=int(Item.TotalVisibleMemorySize/1024)
PrintInfo "RAM visible",lMax,RAM,4,"Mo",""
PrintInfo "RAM masquée",lMax,total-RAM,4,"Mo","environ"
Next
wscript.echo Infos
wscript.quit
'--------------------------------------------------------------------
Function PrintInfo(prompt,lmax1,value,lmax2,unit,byval comment)
sprompt=FormatStrL(prompt,lmax1)
sval=trim(value)
If IsEmpty(sval) or IsNull(sval) then sval="?"
If lmax2>0 Then sval=FormatStrR(sval,lmax2)
If comment<>"" Then comment=" (" & comment & ")"
Infos=Infos & sprompt & " : " & sval & " " & unit & comment & VBCRLF
End Function
'--------------------------------------------------------------------
Function FormatStrL(ch,lmax)
l=len(ch)
If l<lmax Then
For k = l+1 To lmax
ch=ch & " "
Next
End If
FormatStrL=ch
End Function
'--------------------------------------------------------------------
Function FormatStrR(ch,lmax)
buff=ch
l=len(buff)
If l<lmax Then
For k = l+1 To lmax
buff=" " & buff
Next
End If
FormatStrR=buff
End Function
'--------------------------------------------------------------------
'Sous-programme de test du moteur
'Vu les sorties générées, c'est CSCRIPT (et non pas WSCRIPT)
'qui doit être utilisé de préférence
Sub TestHost(force)
dim rep
strappli=lcase(Wscript.ScriptFullName)
strFullName =lcase(WScript.FullName)
i=InStr(1,strFullName,".exe",1)
j=InStrRev(strFullName,"\",i,1)
strCommand=Mid(strFullName,j+1,i-j-1)
if strCommand<>"cscript" then
If force then
Init="Ce script doit être lancé avec CSCRIPT"
Else
Init="Il est préférable de lancer ce script avec CSCRIPT"
End If
rep=MsgBox(Init & VBCRLF & _
"Cela peut être rendu permanent avec la commande" & VBCRLF & _
"cscript //H:CScript //S /Nologo" & VBCRLF & _
"Voulez-vous que ce soit fait automatiquement?", _
vbYesNo + vbQuestion,strappli)
if rep=vbYes then
nomcmd="setscript.bat"
Set ficcmd = fso.CreateTextFile(nomcmd)
ficcmd.writeline "@echo off"
ficcmd.writeline "cscript //H:CScript //S /Nologo"
ficcmd.writeline "pause"
params=""
For i = 0 To nbargs-1
params=params & " " & args(i)
next
ficcmd.writeline chr(34) & strappli & chr(34) & params
ficcmd.writeline "pause"
ficcmd.close
shell.Run nomcmd, SW_SHOWNORMAL,true
force=true
end if
If force then WScript.Quit
end if
end sub
'--------------------------------------------------------------------
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.