Exemple #1
0
        private void SetGroupPolicy(object sender, System.Windows.RoutedEventArgs e)
        {
            switch (SelectedPolicyOption.Key)
            {
            case ENABLE:
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_AUOPTION);
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_NOUPDATE);
                break;

            case DISABLE:
                RegistryEditor.WriteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_NOUPDATE, NOUPDATE_ENABLE, RegistryValueKind.DWord);
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_AUOPTION);
                break;

            case NOTIFY_DOWNLOAD:
                RegistryEditor.WriteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_AUOPTION, AUOPTION_NOTIFY_DOWNLOAD, RegistryValueKind.DWord);
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_NOUPDATE);
                break;

            case NOTIFY_INSTALL:
                RegistryEditor.WriteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_AUOPTION, AUOPTION_NOTIFY_INSTALL, RegistryValueKind.DWord);
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_NOUPDATE);
                break;

            case SCHEDULE_INSTALL:
                RegistryEditor.WriteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_AUOPTION, AUOPTION_SCHEDULE_INSTALL, RegistryValueKind.DWord);
                RegistryEditor.DeleteLocalMachineRegistryValue(REGISTRY_ROOT, REGISTRY_NOUPDATE);
                break;
            }

            Wu10Logger.LogInfo(string.Format("Group Policy set: {0}", SelectedPolicyOption.Value));
            System.Windows.MessageBox.Show("Registry settings updated.", "Group Policies", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information);
        }
Exemple #2
0
        private void WriteChanges()
        {
            var nowString = GetDateString(DateTime.Now);

            if (_model.FeatureUpdatePauseDate.HasValue)
            {
                var pauseDateString = GetDateString(_model.FeatureUpdatePauseDate.Value);
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PauseFeatureUpdatesStartTime, nowString, RegistryValueKind.String);
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PauseFeatureUpdatesEndTime, pauseDateString, RegistryValueKind.String);
                Wu10Logger.LogInfo($"Saving Feature Pause Date: {pauseDateString}");
            }
            else
            {
                RegistryEditor.DeleteLocalMachineRegistryValue(UXRegistryKey, PauseFeatureUpdatesStartTime);
                RegistryEditor.DeleteLocalMachineRegistryValue(UXRegistryKey, PauseFeatureUpdatesEndTime);
                Wu10Logger.LogInfo("Removing Feature Pause Date");
            }

            if (_model.FeatureUpdateDelayDays > 0)
            {
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, DeferFeatureUpdatesPeriodInDays, _model.FeatureUpdateDelayDays.ToString(), RegistryValueKind.DWord);
                Wu10Logger.LogInfo($"Saving Feature Deferal Days: {_model.FeatureUpdateDelayDays}");
            }
            else
            {
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, DeferFeatureUpdatesPeriodInDays, "0", RegistryValueKind.DWord);
                Wu10Logger.LogInfo($"Saving Feature Deferal Days: 0");
            }

            if (_model.QualityUpdatePauseDate.HasValue)
            {
                var pauseDateString = GetDateString(_model.QualityUpdatePauseDate.Value);
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PauseQualityUpdatesStartTime, nowString, RegistryValueKind.String);
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PauseQualityUpdatesEndTime, pauseDateString, RegistryValueKind.String);
                Wu10Logger.LogInfo($"Saving Quality Pause Date: {pauseDateString}");
            }
            else
            {
                RegistryEditor.DeleteLocalMachineRegistryValue(UXRegistryKey, PauseQualityUpdatesStartTime);
                RegistryEditor.DeleteLocalMachineRegistryValue(UXRegistryKey, PauseQualityUpdatesEndTime);
                Wu10Logger.LogInfo("Removing Quality Pause Date");
            }

            if (_model.QualityUpdateDelayDays > 0)
            {
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, DeferQualityUpdatesPeriodInDays, _model.QualityUpdateDelayDays.ToString(), RegistryValueKind.DWord);
                Wu10Logger.LogInfo($"Saving Quality Deferal Days: {_model.QualityUpdateDelayDays}");
            }
            else
            {
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, DeferQualityUpdatesPeriodInDays, "0", RegistryValueKind.DWord);
                Wu10Logger.LogInfo($"Saving Quality Deferal Days: {_model.FeatureUpdateDelayDays}");
            }

            var latestDate = Math.Max(_model.FeatureUpdatePauseDate?.Ticks ?? 0, _model.QualityUpdatePauseDate?.Ticks ?? 0);

            if (latestDate > 0)
            {
                var pauseDateString = GetDateString(new DateTime(latestDate));
                RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PauseUpdatesExpiryTime, GetDateString(new DateTime(latestDate)), RegistryValueKind.String);
                //RegistryEditor.WriteLocalMachineRegistryValue(UXRegistryKey, PendingRebootStartTime, now.ToString(dateFormat), RegistryValueKind.String);
                Wu10Logger.LogInfo($"Saving Pause Date Expiry: {pauseDateString}");
            }
            else
            {
                RegistryEditor.DeleteLocalMachineRegistryValue(UXRegistryKey, PauseUpdatesExpiryTime);
                Wu10Logger.LogInfo($"Removing Pause Date Expiry");
            }

            MessageBox.Show($"Windows Update pause dates and deferal period have been saved.", "Pause and Defer", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Information);
        }