/// <summary> /// Set the StateFlags0200=0x00000002 value for each defined volume cache registry key as preparation for running CleanMgr.exe /// </summary> /// <returns></returns> public static Result <Unit> SetCleanupManagerStateFlags() { Logging.DefaultLogger.Info("Preparing volume cache state flags for running CleanMrg.exe"); return (VolumeCachesKeyPaths .Select(subKeyPath => RegistryOperations.SetRegistryValue(Registry.LocalMachine, subKeyPath, StateFlagsValueName, 2, RegistryValueKind.DWord)) .ToArray() .ToResult() .Match(units => { Logging.DefaultLogger.Info("Successfully prepared volume cache state flags."); return new Result <Unit>(Unit.Default); }, exception => { Logging.DefaultLogger.Error($"Failed preparing volume cache state flags. {exception.ToExceptionMessage()}"); return new Result <Unit>(new Exception($"Failed to execute function {nameof(SetCleanupManagerStateFlags)}", exception)); })); }