strInputFile = « computers.txt »
strOutputFile = « hard_disk_space.csv »
Faibles arrDrives
arrDrives = rangée (« C », « D », « E », « F »)
Placer l'objFSO = le CreateObject (« Scripting.FileSystemObject »)
Const intForReading = 1
Const = 200 adVarChar
Const MaxCharacters = 255
Faible DataList
Placer DataList = CreateObject (« ADOR.Recordset »)
DataList.Fields.Append « serveur », adVarChar, MaxCharacters
Pour chacun strDrive dans les arrDrives
DataList.Fields.Append strDrive et « taille », adVarChar, MaxCharacters
DataList.Fields.Append strDrive et « espace libre », adVarChar, MaxCharacters
DataList.Fields.Append strDrive et « pour cent libèrent », adVarChar, MaxCharacters
Après
DataList.Open
objInputFile réglé = objFSO.OpenTextFile (strInputFile, intForReading)
Tandis que pas objInputFile.AtEndOfStream
strComputer = objInputFile.ReadLine
Get_Free_Space_Details (strComputer)
Wend
Placer objOutputFile = objFSO.CreateTextFile (strOutputFile, vrai)
""" de SERVEUR de strHeader = de """
Pour chacun strDrive dans les arrDrives
le strHeader = le strHeader et « , """ et strDrive et » CLASSENT le "", le """ et "" de l'ESPACE strDrive et le « LIBRE, le """ et le """ LIBRE strDrive et » de POUR CENT
Après
strHeader d'objOutputFile.WriteLine
DataList.MoveFirst
Tandis que pas DataList.EOF
strLine = """" et DataList (« serveur ») et """"
Pour chacun strDrive dans les arrDrives
strLine = strLine et « , """ et DataList (strDrive et » taille ") et """, """ et espace strDrive et « libre » de DataList () et """, """ et DataList (strDrive et » des pour cent libérer ") et """"
Après
strLine d'objOutputFile.WriteLine
DataList.MoveNext
Wend
DataList.Close
objOutputFile.Close
MsgBox « fait. Voir svp » et strOutputFile
'==============
Get_Free_Space_Details secondaire (strComputer)
DataList.AddNew
DataList (« serveur ») = strComputer
Si le cinglement (strComputer) = rectifient alors
Sur le résumé d'erreur après
Placer l'objWMIService = le GetObject (« winmgmts : {impersonationLevel=impersonate} ! \ \ » et strComputer et « \ racine \ cimv2 »)
Si Err.Number = 0 puis
Err.Clear
Sur l'erreur 0 GoTo
Pour chacun strDrive dans les arrDrives
Placer les colDisks = l'objWMIService.ExecQuery (« en espace libre choisi, taille de Win32_LogicalDisk où DriveType = 3 et DeviceID = « » et strDrive et « : » ")
Pour chaque objDisk dans les colDisks
intFreeSpace = objDisk.FreeSpace
intTotalSpace = objDisk.Size
pctFreeSpace = intFreeSpace/intTotalSpace
DataList (strDrive et « taille ») = rond (intTotalSpace/1024/1024/1024, 2) et » gigaoctet "
Espace de DataList (strDrive et le « libre ») = rond (intFreeSpace/1024/1024/1024, 2) et » gigaoctet "
DataList (strDrive et des « pour cent libérer ») = FormatPercent (pctFreeSpace)
Après
Après
Placer l'objDisk = rien
Placer les colDisks = rien
Placer l'objWMIService = rien
Autrement
Pour chacun strDrive dans les arrDrives
DataList (strDrive et « taille ») = « ERREUR de WMI »
Espace de DataList (strDrive et le « libre ») = « ERREUR de WMI »
DataList (strDrive et des « pour cent libérer ») = « ERREUR de WMI »
Après
Finir si
Autrement
Pour chacun strDrive dans les arrDrives
DataList (strDrive et « taille ») = « EN DIFFÉRÉ »
Espace de DataList (strDrive et le « libre ») = « EN DIFFÉRÉ »
DataList (strDrive et les « pour cent libérer ») = « EN DIFFÉRÉ »
Après
Finir si
DataList.Update
Finir le sous-marin
Cinglement de fonction (strComputer)
Faible objShell, boolCode
Placer l'objShell = le CreateObject (« WScript.Shell »)
boolCode = objShell.Run (« cinglement - n 1 - W 300 » et strComputer, 0, vrais)
Si boolCode = 0 puis
Le cinglement = rectifient
Autrement
Cinglement = faux
Finir si
Finir la fonction
|