Script donnant des informations sur le(s) processeur(s)

Contenu du snippet

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
'--------------------------------------------------------------------

A voir également

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.