strInputFile = «computers.txt»
strOutputFile = «hard_disk_space.csv»
Тусклые arrDrives
arrDrives = блок («c», «d», «e», «f»)
Установите objFSO = CreateObject («Scripting.FileSystemObject»)
Const intForReading = 1
Const adVarChar = 200
Const MaxCharacters = 255
Тусклое DataList
Установите DataList = CreateObject («ADOR.Recordset»)
DataList.Fields.Append «сервер», adVarChar, MaxCharacters
Для каждого strDrive в arrDrives
DataList.Fields.Append strDrive & «размер», adVarChar, MaxCharacters
DataList.Fields.Append strDrive & «открытый космос», adVarChar, MaxCharacters
DataList.Fields.Append strDrive & «проценты освобождают», adVarChar, MaxCharacters
Затем
DataList.Open
Установленное objInputFile = objFSO.OpenTextFile (strInputFile, intForReading)
Пока не objInputFile.AtEndOfStream
strComputer = objInputFile.ReadLine
Get_Free_Space_Details (strComputer)
Wend
Установите objOutputFile = objFSO.CreateTextFile (strOutputFile, поистине)
""" СЕРВЕРА strHeader = """
Для каждого strDrive в arrDrives
strHeader = strHeader & «, """ & strDrive &» ОПРЕДЕЛЯЮТ РАЗМЕР "", """ & "" strDrive & «ОТКРЫТОГО КОСМОСА, """ & """ strDrive &» ПРОЦЕНТОВ СВОБОДНО
Затем
strHeader objOutputFile.WriteLine
DataList.MoveFirst
Пока не DataList.EOF
strLine = """" & DataList («сервер») & """"
Для каждого strDrive в arrDrives
strLine = strLine & «, """ & DataList (strDrive &» размеры ") & """, """ & DataList (strDrive & «открытые космосы») & """, """ & DataList (strDrive &» проценты освободите ") & """"
Затем
strLine objOutputFile.WriteLine
DataList.MoveNext
Wend
DataList.Close
objOutputFile.Close
Сделанное MsgBox «. Пожалуйста см.» & strOutputFile
'==============
Sub Get_Free_Space_Details (strComputer)
DataList.AddNew
DataList («сервер») = strComputer
Если Пинг (strComputer) = True после этого
На резюме ошибки затем
Установите objWMIService = GetObject («winmgmts: {impersonationLevel=impersonate}! \ \» & strComputer & «\ корень \ cimv2»)
Если Err.Number = 0 после этого
Err.Clear
На ошибке переход 0
Для каждого strDrive в arrDrives
Установите colDisks = objWMIService.ExecQuery («отборное FreeSpace, размер от Win32_LogicalDisk где DriveType = 3 и DeviceID = «» & strDrive & «: » ")
Для каждого objDisk в colDisks
intFreeSpace = objDisk.FreeSpace
intTotalSpace = objDisk.Size
pctFreeSpace = intFreeSpace/intTotalSpace
DataList (strDrive & «размер») = кругло (intTotalSpace/1024/1024/1024, 2) &» GB "
DataList (strDrive & «открытый космос») = кругло (intFreeSpace/1024/1024/1024, 2) &» GB "
DataList (strDrive & «процент освободите») = FormatPercent (pctFreeSpace)
Затем
Затем
Установите objDisk = ничего
Установите colDisks = ничего
Установите objWMIService = ничего
Еще
Для каждого strDrive в arrDrives
DataList (strDrive & «размер») = «ОШИБКА WMI»
DataList (strDrive & «открытый космос») = «ОШИБКА WMI»
DataList (strDrive & «процент освободите») = «ОШИБКА WMI»
Затем
Закончитесь если
Еще
Для каждого strDrive в arrDrives
DataList (strDrive & «размер») = «OFFLINE»
DataList (strDrive & «открытый космос») = «OFFLINE»
DataList (strDrive & «процент освободите») = «OFFLINE»
Затем
Закончитесь если
DataList.Update
Закончите подводную лодку
Пинг функции (strComputer)
Тусклое objShell, boolCode
Установите objShell = CreateObject («WScript.Shell»)
boolCode = objShell.Run («Пинг - n 1 - w 300» & strComputer, 0, поистине)
Если boolCode = 0 после этого
Пинг = True
Еще
Пинг = ложно
Закончитесь если
Закончите функцию
|