Advanced Windows PowerShell Scripting Video Training

Advanced Windows PowerShell Scripting Video Training
Advanced Windows PowerShell Scripting Video Training

Thursday, August 25, 2011

Forcing a Windows 7 client to create a Shadow Copy

Windows 7 has the ability to support Previous Versions lust like Windows XP and Vista did on a share hosted on a 2003 or 2008 server.  The difference is that the shadow copy can now be a local drive.  Thanks to a little help from Thomas Lee and a posting on the Win32_ShadowCopy from MSDN, you can force a Windows 7 to create a shadow copy.  The actual lines of PowerShell code are below.

# get static method
$class=[WMICLASS]"root\cimv2:win32_shadowcopy"
# create a new shadow copy
"Creating a new shadow copy"
$class.create("C:\", "ClientAccessible")

You can attempt to run this remotely by using PowerShell V2 remoting capability

3 comments:

Anonymous said...

Hmm... this is the response my system (Win7 Ultimate 64-bit) spat back when I ran your script:

Exception calling "Create" : "Initialization failure "
At \temp\force-vss.ps1:5 char:14
+ $class.create <<<< ("C:\", "ClientAccessible")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WMIMethodException

Is there an alternative to "win32_shadowcopy" for 64-bit systems?

Jason Yoder, MCT said...

You are correct. Thank you for catching that. This code was written on an X86 machine.

I did a bit of research on MSDN. Take a look at the bottom of this page. http://msdn.microsoft.com/en-us/library/windows/desktop/aa394428(v=vs.85).aspx

You will see that someone else has commented on this issue. I'll take another look at this next week and see if I can find anything that will work on an X64.

Jason Yoder, MCT said...

Here is something that is interesting. Take a look at the comments from John Homer. It looks like he has a script that might help you out.

http://serverfault.com/questions/119120/how-to-use-a-volume-shadow-copy-to-make-backups