mxk / go-vss

Go interface to the Windows Volume Shadow Copy Service
Mozilla Public License 2.0
8 stars 1 forks source link

Use COM for creating VSS and not WMI #1

Open CornFly2016 opened 10 months ago

CornFly2016 commented 10 months ago

VSS can be created both using WMI and using COM in windows environment.

However, when using COM, we can get many benefits that we simply don't get when using WMI:

  1. Run as a 'Backup Operator' Privileges (And not requiring administrator). This is better for the least-privileges principle, and makes far more sense for a backup utility security context.
  2. Control whenever we want VSS writers to run (Sadly, WMI does not expose this functionality). This is an important aspect that allows supported context such as Registry writers, or Hyper-V writers, to make sure the backup that is created is done in a consistent state.

Microsoft have a great sample on how to use the COM interface in C++ here: https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/VShadowVolumeShadowCopy/README.md

mxk commented 10 months ago

Yes, I'm aware of this. It would provide a bunch of other nice functionality, like Expose and snapshot sets. I started looking at it, but the WMI implementation was more straightforward and covers the majority of use cases, so I wanted to finish that first. I'd like to continue working on the COM version, but no promises about the timeline.