Monday, February 06, 2012
   
Text Size

VB SCripting - Set System Restore size depending on hard drive size

 '********Set System Restore size depending on hard drive size
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive",,48)
 For Each objItem in colItems
 objItem.size = objItem.size /1000000000 
 DiskSize = objItem.size
 DriveNumber = objItem.DeviceID
 Next

 If DriveNumber = "\\.\PHYSICALDRIVE0" Then
  WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR" , 0 , "REG_DWORD"
   If DiskSize <= 15 Then
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent" , 5 , "REG_DWORD"
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\Cfg\DiskPercent" , 5 , "REG_DWORD"
   End If
   If DiskSize => 16 AND DiskSize <= 29 Then
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent" , 3 , "REG_DWORD"
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\Cfg\DiskPercent" , 3 , "REG_DWORD"
   End If  
   If DiskSize => 30 AND DiskSize <= 49 Then
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent" , 2 , "REG_DWORD"
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\Cfg\DiskPercent" , 2 , "REG_DWORD"
   End If
   If DiskSize => 50 Then
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\DiskPercent" , 1 , "REG_DWORD"
    WshShell.RegWrite "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore\Cfg\DiskPercent" , 1 , "REG_DWORD"
   End If
 Else
  MSGBOX("No Drive Detected") 
 End If