Example #1
0
        public override void ExecuteCmdlet()
        {
            PSSecuritySetting setting;

            switch (ParameterSetName)
            {
            case ParameterSetNames.DataExportSettingsScope:
                break;

            case ParameterSetNames.InputObject:
                if (InputObject.GetType().Name == nameof(PSSecurityDataExportSetting))
                {
                    SettingKind = "DataExportSettings";
                    Enabled     = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityDataExportSetting)InputObject).Enabled : Enabled;
                }
                SettingName = InputObject.Name;
                break;

            default:
                throw new PSInvalidOperationException();
            }

            if (SettingKind == "DataExportSettings")
            {
                setting = new PSSecurityDataExportSetting()
                {
                    Enabled = Enabled,
                    Name    = SettingName
                };
            }
            else
            {
                throw new PSInvalidOperationException("Invalid setting kind");
            }


            if (ShouldProcess(SettingName, VerbsCommon.Set))
            {
                var updatedSetting = SecurityCenterClient.Settings.UpdateWithHttpMessagesAsync(SettingName, setting.ConvertToCSType()).GetAwaiter().GetResult().Body;

                WriteObject(updatedSetting.ConvertToPSType(), enumerateCollection: false);
            }
        }
Example #2
0
        public override void ExecuteCmdlet()
        {
            PSSecuritySetting setting;

            switch (ParameterSetName)
            {
            case ParameterSetNames.SettingsScope:
                break;

            case ParameterSetNames.InputObject:
                if (InputObject.GetType().Name == nameof(PSSecurityDataExportSetting))
                {
                    SettingKind = DataExportSettingsSettingKind;
                    Enabled     = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityDataExportSetting)InputObject).Enabled : Enabled;
                }
                if (InputObject.GetType().Name == nameof(PSSecurityAlertSyncSettings))
                {
                    SettingKind = AlertSyncSettingsSettingKind;
                    Enabled     = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityAlertSyncSettings)InputObject).Enabled : Enabled;
                }
                SettingName = InputObject.Name;
                break;

            default:
                throw new PSInvalidOperationException();
            }

            if ((SettingName == SentinelSettingName && SettingKind != AlertSyncSettingsSettingKind) ||
                ((SettingName == McasSettingName || SettingName == WdatpSettingName) && SettingKind != DataExportSettingsSettingKind))
            {
                throw new PSInvalidOperationException("Setting kind doesn't match the setting name");
            }

            switch (SettingKind)
            {
            case DataExportSettingsSettingKind:
            {
                setting = new PSSecurityDataExportSetting()
                {
                    Enabled = Enabled,
                    Name    = SettingName
                };
                break;
            };

            case AlertSyncSettingsSettingKind:
            {
                setting = new PSSecurityAlertSyncSettings()
                {
                    Enabled = Enabled,
                    Name    = SettingName
                };
                break;
            };

            default:
                throw new PSInvalidOperationException("Invalid setting kind");
            }

            if (ShouldProcess(SettingName, VerbsCommon.Set))
            {
                var updatedSetting = SecurityCenterClient.Settings.UpdateWithHttpMessagesAsync(SettingName, setting.ConvertToCSType()).GetAwaiter().GetResult().Body;

                WriteObject(updatedSetting.ConvertToPSType(), enumerateCollection: false);
            }
        }