Revision: 12839
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 30, 2009 14:45 by pollusb
Initial Code
' This code simulates the 'defrag /a /v' command except it analyzes
' all fixed disks, not just a specific one.
' The Win32_Volume class is new in Windows Server 2003
' ---------------------------------------------------------------
' From the book "Windows Server Cookbook" by Robbie Allen
' ISBN: 0-596-00633-0
' ---------------------------------------------------------------
' ------ SCRIPT CONFIGURATION ------
strComputer = "."
' ------ END CONFIGURATION ---------
set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
set colVols = objWMI.ExecQuery("Select * from Win32_Volume where DriveType = 3")
for each objVol in colVols
WScript.Echo "Analyzing volume " & objVol.DriveLetter
intRC = objVol.DefragAnalysis(boolDefrag, objRpt)
if intRC = 0 then
WScript.Echo " Volume size: " & objRpt.VolumeSize
WScript.Echo " Cluster size: " & objRpt.ClusterSize
WScript.Echo " Used space: " & objRpt.UsedSpace
WScript.Echo " Free space: " & objRpt.FreeSpace
WScript.Echo " Percent free space: " & objRpt.FreeSpacePercent
WScript.Echo " Total fragmentation: " & _
objRpt.TotalPercentFragmentation
WScript.Echo " File fragmentation: " & _
objRpt.FilePercentFragmentation
WScript.Echo " Free space fragmentation: " & _
objRpt.FreeSpacePercentFragmentation
WScript.Echo " Total files: " & objRpt.TotalFiles
WScript.Echo " Average file size: " & objRpt.AverageFileSize
WScript.Echo " Total fragmented files: " & objRpt.TotalFragmentedFiles
WScript.Echo " Total excess fragments: " & objRpt.TotalExcessFragments
WScript.Echo " Avg fragments per file: " & _
objRpt.AverageFragmentsPerFile
WScript.Echo " Page file size: " & objRpt.PageFileSize
WScript.Echo " Total page file fragments: " & _
objRpt.TotalPageFileFragments
WScript.Echo " Total folders: " & objRpt.TotalFolders
WScript.Echo " Fragmented folders: " & objRpt.FragmentedFolders
WScript.Echo " Excess folder fragments: " & _
objRpt.ExcessFolderFragments
WScript.Echo " Total MFT size: " & objRpt.TotalMFTSize
WScript.Echo " MFT record count: " & objRpt.MFTRecordCount
WScript.Echo " MFT percent in use: " & objRpt.MFTPercentInUse
WScript.Echo " Total MFT fragments: " & objRpt.TotalMFTFragments
if boolDefrag = True Then
WScript.Echo "You should defragment this volume."
else
WScript.Echo "You do not need to defragment this volume."
end if
WScript.Echo
else
WScript.Echo "Error during defragmentation analysis: " & intRC
end if
next
Initial URL
http://techtasks.com/code/viewbookcode/484
Initial Description
Copy and paste this code in "defrag.vbs" then on the command prompt call "cscript.exe defrag.vbs > defrag.txt". One nice thing about this code it analyze also mounted volumes. This script only read info !
Initial Title
Get DEFRAG analysis from vbscript code from Windows 2003
Initial Tags
Initial Language
Visual Basic