Skip to main content


Description: ShadowSpawn is a tool for working with shadow copies. Shadow copies are read-only snapshots of your disk. Working with shadow copies instead of the actual files allows you to do things like work with in-use (locked) files.
Interface: Windows CLI
License: Open-Source
Functions: Exposes Windows Shadow Copies to use by local tools for copying.
Platforms: Windows x86, x64
Commentary: Before this was hobocopy, which copied out of Shadow Copies, and then ShadowSpawn came after. Use these tools to get at files that may be locked or in use on a system. Downloads are a bit tricky, get it here for x86 or here for x64.
Usage Example: shadowspawn C:\foo Q: robocopy Q:\ C:\bar /s



shadowspawn [ /verbosity=LEVEL ] <src> <drive:> <command> [ <arg> ... ]

Creates a shadow copy of <src>, mounts it at <drive:> and runs <command>.

/verbosity   - Specifies how much information ShadowSpawn will emit
               during execution. Legal values are: 0 - almost no
               information will be emitted. 1 - Only error information
               will be emitted. 2 - Errors and warnings will be
               emitted. 3 - Errors, warnings, and some status
               information will be emitted. 4 - Lots of diagnostic
               information will be emitted. The default level is 2.

<src>        - The directory to shadow copy (the source directory).
<drive:>     - Where to mount the shadow copy. Must be a single letter
               followed by a colon. E.g. 'X:'. The drive letter must be
               available (i.e. nothing else mounted there).
<command>    - A command to run. ShadowSpawn will ensure that <src> is
               mounted at <drive:> before starting <command>, and will
               wait for <command> to finish before unmounting <drive:>

Exit Status:

If there is an error while processing (e.g. ShadowSpawn fails to
create the shadow copy), ShadowSpawn exits with status 1.

If there is an error in usage (i.e. the user specifies an unknown
option), ShadowSpawn exits with status 2.

If everything else executes as expected and <command> exits with
status zero, ShadowSpawn also exits with status 0.

If everything else executes as expected and <command> exits with a
nonzero status code n, ShadowSpawn exits with status n logically OR'ed
with 32768 (0x8000). For example, robocopy exits with status 1 when
one or more files are Scopied. So, when executing

  shadowspawn C:\foo X: robocopy X:\ C:\path\to\backup /mir

the exit code of ShadowSpawn would be 32769 (0x8000 | 0x1).