public static string GetDisabledValueName(this RebootSource rebootSource) { if (rebootSource == null) { throw new ArgumentNullException(nameof(rebootSource)); } switch (rebootSource.Value) { case RebootSource.CbsName: return("DisableRebootSourceComponentBasedServicing"); case RebootSource.WuauName: return("DisableRebootSourceWindowsUpdate"); case RebootSource.PendingFileRenameOperationsName: return("DisableRebootSourcePendingFileRenameOperations"); case RebootSource.SccmClientName: return("DisableRebootSourceSccmClient"); case RebootSource.JoinDomainName: return("DisableRebootSourceJoinDomain"); case RebootSource.ComputerNameRenameName: return("DisableRebootSourceComputerNameRename"); case RebootSource.RunOnceName: return("DisableRebootSourceRunOnce"); default: throw new ArgumentException($"Invalid reboot source: {rebootSource.Value}"); } }
public static bool IsDisabled(this RebootSource rebootSource) { var category = typeof(CheckPendingRebootCommand).GetPolicyCategory(); var disabledValueName = rebootSource.GetDisabledValueName(); var isDisabled = Profile.GetBooleanPolicyValue(Context.Machine, category, disabledValueName, false); if (isDisabled) { Logging.DefaultLogger.Debug($"Reboot source '{rebootSource}' is disabled"); } return(isDisabled); }
public static PendingRebootInfo RemoveSource(this PendingRebootInfo org, RebootSource rebootSource) { if (org == null) { throw new ArgumentNullException(nameof(org)); } var sources = org.Sources.Where(source => source.Value != rebootSource.Value).ToList(); return(new PendingRebootInfo { RebootIsPending = sources.Count > 0, Sources = sources }); }