Contact Info

Crumbtrail

ActiveXperts.com » Administration » VBScript Collection » Computer Management » Shadow Copies

Shadow Copies Scripts

Creating a Shadow Copy
Creating a Shadow Copy Storage Area
Deleting All Shadow Copies on a Computer
Deleting All Shadow Copy Storage Areas
Enumerating All Shadow Copies on a Computer
Enumerating All Shadow Copy Storage Areas on a Computer
Enumerating Shadow Copy Providers
Modifying a Shadow Copy Storage Area
Retrieving Shadow Copy Settings

Creating a Shadow Copy


Creates a client-accessible shadow copy of drive C.
Const VOLUME = "C:\"
Const CONTEXT = "ClientAccessible"
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
errResult = objShadowStorage.Create(VOLUME, CONTEXT, strShadowID)

Creating a Shadow Copy Storage Area


Creates a shadow copy storage area -- on drive E -- for storing shadow copies of drive C. This script reserves 130,023,424 bytes of storage space for the shadow copies.
Const VOLUME = "C:\"
Const DIFFERENTIAL_VOLUME = "E:\"
Const MAXIMUM_SPACE = 130023424
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowStorage")
errResult = objShadowStorage.Create(VOLUME, DIFFERENTIAL_VOLUME, MAXIMUM_SPACE)

Deleting All Shadow Copies on a Computer


Deletes all the shadow copies stored on a server.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_ShadowCopy")
For Each objItem in colItems
    objItem.Delete_
Next

Deleting All Shadow Copy Storage Areas


Deletes all the shadow copy storage areas on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_ShadowStorage")
For Each objItem in colItems
    objItem.Delete_
Next

Enumerating All Shadow Copies on a Computer


Enumerates the properties of all the shadow copies stored on a server.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowCopy")
For Each objItem in colItems
    Wscript.Echo "ID: " & objItem.ID
    Wscript.Echo "Client accessible: " & objItem.ClientAccessible
    Wscript.Echo "Count: " & objItem.Count
    Wscript.Echo "Device object: " & objItem.DeviceObject
    Wscript.Echo "Differnetial: " & objItem.Differential
    Wscript.Echo "Exposed locally: " & objItem.ExposedLocally
    Wscript.Echo "Exposed name: " & objItem.ExposedName
    Wscript.Echo "Exposed remotely: " & objItem.ExposedRemotely
    Wscript.Echo "Hardware assisted: " & objItem.HardwareAssisted
    Wscript.Echo "Imported: " & objItem.Imported
    Wscript.Echo "No auto release: " & objItem.NoAutoRelease
    Wscript.Echo "Not surfaced: " & objItem.NotSurfaced
    Wscript.Echo "No writers: " & objItem.NoWriters
    Wscript.Echo "Originating machine: " & objItem.OriginatingMachine
    Wscript.Echo "Persistent: " & objItem.Persistent
    Wscript.Echo "Plex: " & objItem.Plex
    Wscript.Echo "Provider ID: " & objItem.ProviderID
    Wscript.Echo "Service machine: " & objItem.ServiceMachine
    Wscript.Echo "Set ID: " & objItem.SetID
    Wscript.Echo "State: " & objItem.State
    Wscript.Echo "Transportable: " & objItem.Transportable
    Wscript.Echo "Volume name: " & objItem.VolumeName
    Wscript.Echo
Next

Enumerating All Shadow Copy Storage Areas on a Computer


Retrieves a list of all the shadow copy storage areas on a computer, as well as the properties of each storage area.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowStorage")
For Each objItem in colItems
    Wscript.Echo "Volume: " & objItem.Volume
    Wscript.Echo "Allocated space: " & objItem.AllocatedSpace
    Wscript.Echo "Differential volume: " & objItem.DiffVolume
    Wscript.Echo "Maximum space: " & objItem.MaxSpace
    Wscript.Echo "Used space: " & objItem.UsedSpace
    Wscript.Echo
Next

Enumerating Shadow Copy Providers


Returns the properties of all the shadow copy providers installed on a computer. For most computers, there will be only the default shadow copy provider included with the operating system.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowProvider")
For Each objItem in colItems
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "CLSID: " & objItem.CLSID
    Wscript.Echo "ID: " & objItem.ID
    Wscript.Echo "Type: " & objItem.Type
    Wscript.Echo "Version: " & objItem.Version
    Wscript.Echo "Version ID: " & objItem.VersionID
    Wscript.Echo
Next

Modifying a Shadow Copy Storage Area


Modifies all the shadow copy storage areas on a computer, setting the maximum amount of reserved space to 500,000,000 bytes.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowStorage")
For Each objItem in colItems
    objItem.MaxSpace = 500000000
    objItem.Put_
Next

Retrieving Shadow Copy Settings


Retrieves the shadow copy settings configured on a computer.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowContext")
For Each objItem in colItems
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "Client accessible: " & objItem.ClientAccessible
    Wscript.Echo "Differential: " & objItem.Differential
    Wscript.Echo "Exposed locally: " & objItem.ExposedLocally
    Wscript.Echo "Exposed remotely: " & objItem.ExposedRemotely
    Wscript.Echo "Hardware assisted: " & objItem.HardwareAssisted
    Wscript.Echo "Imported: " & objItem.Imported
    Wscript.Echo "No auto release: " & objItem.NoAutoRelease
    Wscript.Echo "Not surfaced: " & objItem.NotSurfaced
    Wscript.Echo "No writers: " & objItem.NoWriters
    Wscript.Echo "Persistent: " & objItem.Persistent
    Wscript.Echo "Plex: " & objItem.Plex
    Wscript.Echo "Transportable: " & objItem.Transportable
    Wscript.Echo
Next