tiens un petit script qui marche sur les postes avec un gestionnaire wmi (win2000 et + et les nt4 si utilitaire d'installé):
Marche très bien sous xp et 2000
Et pour info ne confond surout pas DOS et l'interpreteur de commande sous windows. DOS est un vieux systeme d'exploitation qu'il est possible de simuler sous les win actuel mais l'interpreteur de commande ou le batch c'est ce qu'on lance en tapant "cmd" dans la fenetre executer par exemple. Toutes les commandes dos ne marchent pas dans le batch mais surtout il y a beaucoup mais beaucoup plus de commande sous le batch que sous dos. Sur le batch de windows on peut tout faire et c'est souvent bcp plus simple de passer par là que de se perdre dans les 50000 fenetre de configuration.
Select Case WScript.Arguments.Count
Case 0
' Default if none specified is local computer (".")
Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
strComputer = objItem.Name
Next
Case 1
' Command line parameter can either be a computer name
' or "/?" to request online help
strComputer = Wscript.Arguments(0)
if InStr( strComputer, "?" ) > 0 Then Syntax
Case Else
' Maximum is 1 command line parameter
Syntax
End Select
Display( strComputer )
WScript.Quit(0)
Function Display( strComputer )
strMsg = vbCrLf & "Name:" & vbTab & "Drive:" & vbTab & "Size:" & _
vbTab & "Free:" & vbTab & "% Free:" & vbCrLf & "=====" & _
vbTab & "======" & vbTab & "=====" & vbTab & "=====" & _
vbTab & "=======" & vbCrLf
On Error Resume Next
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
If Err.Number Then
WScript.Echo vbCrLf & "Error # " & CStr( Err.Number ) & _
" " & Err.Description
Err.Clear
Syntax
End If
On Error GoTo 0
' Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType=12",,48)
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
For Each objItem in colItems
strMsg = strMsg & strComputer & vbTab & _
objItem.Name & vbTab & _
CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) ) & _
vbTab & _
CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) ) & _
vbTab & _
CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & _
vbCrLf
Next
WScript.Echo strMsg
End Function