private void WuModule(EntityPolicyModules policyModule) { var clientWuModule = new DtoClientWuModule(); var wuModule = new ServiceWuModule().GetModule(policyModule.ModuleId); clientWuModule.Guid = wuModule.Guid; clientWuModule.DisplayName = wuModule.Name; clientWuModule.Arguments = wuModule.AdditionalArguments; clientWuModule.Order = policyModule.Order; clientWuModule.Timeout = wuModule.Timeout; clientWuModule.RedirectOutput = wuModule.RedirectStdOut; clientWuModule.RedirectError = wuModule.RedirectStdError; foreach (var successCode in wuModule.SuccessCodes.Split(',')) { clientWuModule.SuccessCodes.Add(successCode); } if (policyModule.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript != null) { clientWuModule.ConditionFailedAction = policyModule.ConditionFailedAction; clientWuModule.ConditionNextOrder = policyModule.ConditionNextModule; clientWuModule.Condition = new DtoClientModuleCondition(); clientWuModule.Condition.Arguments = conditionScript.Arguments; clientWuModule.Condition.DisplayName = conditionScript.Name; clientWuModule.Condition.Guid = conditionScript.Guid; clientWuModule.Condition.RedirectError = conditionScript.RedirectStdError; clientWuModule.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { clientWuModule.Condition.RunAs = scriptImpersonationGuid; } } clientWuModule.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { clientWuModule.Condition.SuccessCodes.Add(successCode); } clientWuModule.Condition.Timeout = conditionScript.Timeout; clientWuModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } var moduleFiles = new ServiceModule().GetModuleFiles(wuModule.Guid); foreach (var file in moduleFiles.OrderBy(x => x.FileName)) { var clientFile = new DtoClientFileHash(); clientFile.FileName = file.FileName; clientFile.FileHash = file.Md5Hash; clientWuModule.Files.Add(clientFile); } _clientPolicy.WuModules.Add(clientWuModule); }
private void Policy() { _clientPolicy.Name = _policy.Name; _clientPolicy.Guid = _policy.Guid; _clientPolicy.Frequency = _policy.Frequency; _clientPolicy.Trigger = _policy.Trigger; _clientPolicy.SubFrequency = _policy.SubFrequency; _clientPolicy.StartDate = _policy.StartDate; _clientPolicy.CompletedAction = _policy.CompletedAction; _clientPolicy.RemoveInstallCache = _policy.RemoveInstallCache; _clientPolicy.ExecutionType = _policy.ExecutionType; _clientPolicy.ErrorAction = _policy.ErrorAction; _clientPolicy.IsInventory = _policy.RunInventory; _clientPolicy.RemoteAccess = _policy.RemoteAccess; _clientPolicy.IsLoginTracker = _policy.RunLoginTracker; _clientPolicy.JoinDomain = _policy.JoinDomain; _clientPolicy.ImagePrepCleanup = _policy.ImagePrepCleanup; _clientPolicy.FrequencyMissedAction = _policy.MissedAction; _clientPolicy.LogLevel = _policy.LogLevel; _clientPolicy.SkipServerResult = _policy.SkipServerResult; _clientPolicy.IsApplicationMonitor = _policy.RunApplicationMonitor; _clientPolicy.StartWindowScheduleId = _policy.WindowStartScheduleId; _clientPolicy.EndWindowScheduleId = _policy.WindowEndScheduleId; _clientPolicy.WuType = _policy.WuType; _clientPolicy.PolicyComCondition = _policy.PolicyComCondition; _clientPolicy.Id = _policy.Id; _clientPolicy.ConditionFailedAction = _policy.ConditionFailedAction; if (_policy.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(_policy.ConditionId); if (conditionScript != null) { _clientPolicy.Condition.Arguments = conditionScript.Arguments; _clientPolicy.Condition.DisplayName = conditionScript.Name; _clientPolicy.Condition.Guid = conditionScript.Guid; _clientPolicy.Condition.RedirectError = conditionScript.RedirectStdError; _clientPolicy.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { _clientPolicy.Condition.RunAs = scriptImpersonationGuid; } } _clientPolicy.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { _clientPolicy.Condition.SuccessCodes.Add(successCode); } _clientPolicy.Condition.Timeout = conditionScript.Timeout; _clientPolicy.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } if (_policy.JoinDomain) { _clientPolicy.DomainOU = _policy.DomainOU; } }
private void PrinterModule(EntityPolicyModules policyModule) { var clientPrinterModule = new DtoClientPrinterModule(); var printerModule = new ServicePrinterModule().GetModule(policyModule.ModuleId); clientPrinterModule.Guid = printerModule.Guid; clientPrinterModule.DisplayName = printerModule.Name; clientPrinterModule.PrinterPath = printerModule.NetworkPath; clientPrinterModule.Order = policyModule.Order; clientPrinterModule.IsDefault = printerModule.IsDefault; clientPrinterModule.RestartSpooler = printerModule.RestartSpooler; clientPrinterModule.PrinterAction = printerModule.Action; clientPrinterModule.WaitForEnumeration = printerModule.WaitForEnumeration; if (policyModule.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript != null) { clientPrinterModule.ConditionFailedAction = policyModule.ConditionFailedAction; clientPrinterModule.ConditionNextOrder = policyModule.ConditionNextModule; clientPrinterModule.Condition = new DtoClientModuleCondition(); clientPrinterModule.Condition.Arguments = conditionScript.Arguments; clientPrinterModule.Condition.DisplayName = conditionScript.Name; clientPrinterModule.Condition.Guid = conditionScript.Guid; clientPrinterModule.Condition.RedirectError = conditionScript.RedirectStdError; clientPrinterModule.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { clientPrinterModule.Condition.RunAs = scriptImpersonationGuid; } } clientPrinterModule.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { clientPrinterModule.Condition.SuccessCodes.Add(successCode); } clientPrinterModule.Condition.Timeout = conditionScript.Timeout; clientPrinterModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } _clientPolicy.PrinterModules.Add(clientPrinterModule); }
private void MessageModule(EntityPolicyModules policyModule) { var clientMessageModule = new DtoClientMessageModule(); var messageModule = new ServiceMessageModule().GetModule(policyModule.ModuleId); clientMessageModule.Guid = messageModule.Guid; clientMessageModule.DisplayName = messageModule.Name; clientMessageModule.Order = policyModule.Order; clientMessageModule.Title = messageModule.Title; clientMessageModule.Message = messageModule.Message; clientMessageModule.Timeout = messageModule.Timeout; if (policyModule.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript != null) { clientMessageModule.ConditionFailedAction = policyModule.ConditionFailedAction; clientMessageModule.ConditionNextOrder = policyModule.ConditionNextModule; clientMessageModule.Condition = new DtoClientModuleCondition(); clientMessageModule.Condition.Arguments = conditionScript.Arguments; clientMessageModule.Condition.DisplayName = conditionScript.Name; clientMessageModule.Condition.Guid = conditionScript.Guid; clientMessageModule.Condition.RedirectError = conditionScript.RedirectStdError; clientMessageModule.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { clientMessageModule.Condition.RunAs = scriptImpersonationGuid; } } clientMessageModule.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { clientMessageModule.Condition.SuccessCodes.Add(successCode); } clientMessageModule.Condition.Timeout = conditionScript.Timeout; clientMessageModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } _clientPolicy.MessageModules.Add(clientMessageModule); }
private string VerifySoftware(EntityPolicyModules policyModule) { var softwareModule = new ServiceSoftwareModule().GetModule(policyModule.ModuleId); if (string.IsNullOrEmpty(softwareModule.Name)) { return("A Software Module Has An Invalid Name"); } if (softwareModule.Archived) { return("Software Module: " + softwareModule.Name + " Is Archived"); } if (string.IsNullOrEmpty(softwareModule.Guid)) { return("Software Module: " + softwareModule.Name + " Has An Invalid GUID"); } int value; if (!int.TryParse(softwareModule.Timeout.ToString(), out value)) { return("Software Module: " + softwareModule.Name + " Has An Invalid Timeout"); } if (string.IsNullOrEmpty(softwareModule.Command)) { return("Software Module: " + softwareModule.Name + " Has An Invalid Command"); } if (!int.TryParse(policyModule.Order.ToString(), out value)) { return("Software Module: " + softwareModule.Name + " Has An Invalid Order"); } List <string> successCodes = new List <string>(); foreach (var successCode in softwareModule.SuccessCodes.Split(',')) { successCodes.Add(successCode); } if (successCodes.Count == 0) { return("Software Module: " + softwareModule.Name + " Has An Invalid Success Code"); } if (successCodes.Any(code => !int.TryParse(code, out value))) { return("Software Module: " + softwareModule.Name + " Has An Invalid Success Code"); } var uploadedFiles = new ServiceUploadedFile().GetFilesForModule(softwareModule.Guid); var externalFiles = new ServiceExternalDownload().GetForModule(softwareModule.Guid); if (uploadedFiles == null && externalFiles == null) { return("Software Module: " + softwareModule.Name + " Does Not Have Any Associated Files"); } try { if (uploadedFiles.Count == 0 && externalFiles.Count == 0) { return("Software Module: " + softwareModule.Name + " Does Not Have Any Associated Files"); } } catch { return("Software Module: " + softwareModule.Name + " Error While Determining Associated Files"); } var basePath = Path.Combine(ServiceSetting.GetSettingValue(SettingStrings.StoragePath), "software_uploads"); using (var unc = new UncServices()) { if (unc.NetUseWithCredentials() || unc.LastError == 1219) { try { foreach (var file in uploadedFiles.OrderBy(x => x.Name)) { if (string.IsNullOrEmpty(file.Hash)) { return("Software Module: " + softwareModule.Name + " " + file.Name + " Does Not Have An MD5 Hash"); } var fullPath = Path.Combine(basePath, file.Guid, file.Name); if (!File.Exists(fullPath)) { return("Software Module: " + softwareModule.Name + " " + fullPath + " Does Not Exist"); } } foreach (var file in externalFiles.OrderBy(x => x.FileName)) { if (file.Status != EnumFileDownloader.DownloadStatus.Complete) { return("Software Module: " + softwareModule.Name + " " + file.FileName + " Has Not Finished Downloading Or Is In An Error State"); } if (string.IsNullOrEmpty(file.Md5Hash)) { return("Software Module: " + softwareModule.Name + " " + file.FileName + " Does Not Have An MD5 Hash"); } var fullPath = Path.Combine(basePath, file.ModuleGuid, file.FileName); if (!File.Exists(fullPath)) { return("Software Module: " + softwareModule.Name + " " + fullPath + " Does Not Exist"); } } } catch (Exception ex) { Logger.Debug(ex.Message); return("Software Module: " + softwareModule.Name + " Unknown Error Trying To Verify Files"); } } else { return("Could Not Reach Storage Path"); } } if (softwareModule.ImpersonationId != -1) { var impAccount = new ServiceImpersonationAccount().GetAccount(softwareModule.ImpersonationId); if (impAccount == null) { return("Software Module: " + softwareModule.Name + " Has An Invalid Impersonation Account"); } } return(null); }
private string VerifyScript(EntityPolicyModules policyModule) { var scriptModule = new ServiceScriptModule().GetModule(policyModule.ModuleId); if (scriptModule == null) { return("An Assigned Script Module No Longer Exists"); } if (string.IsNullOrEmpty(scriptModule.Name)) { return("A Script Module Has An Invalid Name"); } if (scriptModule.Archived) { return("Script Module: " + scriptModule.Name + " Is Archived"); } if (string.IsNullOrEmpty(scriptModule.ScriptContents)) { return("Script Module: " + scriptModule.Name + " Has An Invalid Script. It Cannot Be Empty."); } if (string.IsNullOrEmpty(scriptModule.Guid)) { return("Script Module: " + scriptModule.Name + " Has An Invalid GUID"); } if (scriptModule.ScriptType != EnumScriptModule.ScriptType.Batch && scriptModule.ScriptType != EnumScriptModule.ScriptType.Powershell && scriptModule.ScriptType != EnumScriptModule.ScriptType.VbScript) { return("Script Module: " + scriptModule.Name + " Has An Invalid Type"); } int value; if (!int.TryParse(scriptModule.Timeout.ToString(), out value)) { return("Script Module: " + scriptModule.Name + " Has An Invalid Timeout"); } List <string> successCodes = new List <string>(); foreach (var successCode in scriptModule.SuccessCodes.Split(',')) { successCodes.Add(successCode); } if (successCodes.Count == 0) { return("Script Module: " + scriptModule.Name + " Has An Invalid Success Code"); } if (successCodes.Any(code => !int.TryParse(code, out value))) { return("Script Module: " + scriptModule.Name + " Has An Invalid Success Code"); } if (!string.IsNullOrEmpty(scriptModule.WorkingDirectory)) { try { Path.GetFullPath(scriptModule.WorkingDirectory); } catch { return("Script Module: " + scriptModule.Name + " Has An Invalid Working Directory"); } } if (scriptModule.ImpersonationId != -1) { var impAccount = new ServiceImpersonationAccount().GetAccount(scriptModule.ImpersonationId); if (impAccount == null) { return("Script Module: " + scriptModule.Name + " Has An Invalid Impersonation Account"); } } if (!int.TryParse(policyModule.Order.ToString(), out value)) { return("Script Module: " + scriptModule.Name + " Has An Invalid Order"); } return(null); }
private string VerifyConditions(EntityPolicyModules policyModule, List <EntityPolicyModules> policyModules) { if (policyModule.ConditionId != -1) // -1 = disabled { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript == null) { return($"Condition Script For {policyModule.Name} Does Not Exist"); } if (!conditionScript.IsCondition) { return($"The Condition Script For {policyModule.Name} Is Not Currently Set As A Condition"); } if (string.IsNullOrEmpty(conditionScript.Name)) { return($"A Condition Script For {policyModule.Name} Has An Invalid Name"); } if (conditionScript.Archived) { return($"A Condition Script For {policyModule.Name} Is Archived"); } if (string.IsNullOrEmpty(conditionScript.ScriptContents)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Script. It Cannot Be Empty."); } if (string.IsNullOrEmpty(conditionScript.Guid)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid GUID"); } if (conditionScript.ScriptType != EnumScriptModule.ScriptType.Batch && conditionScript.ScriptType != EnumScriptModule.ScriptType.Powershell && conditionScript.ScriptType != EnumScriptModule.ScriptType.VbScript) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Type"); } int value; if (!int.TryParse(conditionScript.Timeout.ToString(), out value)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Timeout"); } List <string> successCodes = new List <string>(); foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { successCodes.Add(successCode); } if (successCodes.Count == 0) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Success Code"); } if (successCodes.Any(code => !int.TryParse(code, out value))) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Success Code"); } if (!string.IsNullOrEmpty(conditionScript.WorkingDirectory)) { try { Path.GetFullPath(conditionScript.WorkingDirectory); } catch { return("Condition Script: " + conditionScript.Name + " Has An Invalid Working Directory"); } } if (conditionScript.ImpersonationId != -1) { var impAccount = new ServiceImpersonationAccount().GetAccount(conditionScript.ImpersonationId); if (impAccount == null) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Impersonation Account"); } } if (policyModule.ConditionFailedAction != EnumCondition.FailedAction.GotoModule && policyModule.ConditionFailedAction != EnumCondition.FailedAction.MarkFailed && policyModule.ConditionFailedAction != EnumCondition.FailedAction.MarkNotApplicable && policyModule.ConditionFailedAction != EnumCondition.FailedAction.MarkSkipped && policyModule.ConditionFailedAction != EnumCondition.FailedAction.MarkSuccess) { return($"The Condition Failed Action For {policyModule.Name} Is Not Valid"); } if (policyModule.ConditionFailedAction == EnumCondition.FailedAction.GotoModule) { if (!int.TryParse(policyModule.ConditionNextModule.ToString(), out value)) { return("Module: " + policyModule.Name + " Has An Invalid Next Order Number"); } if (policyModule.ConditionNextModule <= policyModule.Order) { return("Module: " + policyModule.Name + " The Goto Order Number Must Be Greater Than Itself"); } if (!policyModules.Any(x => x.Order == policyModule.ConditionNextModule)) { return("Module: " + policyModule.Name + " The Goto Order Number Is Not Assigned To Any Modules."); } } } return(null); }
private string VerifyPolicy() { if (string.IsNullOrEmpty(_policy.Name)) { return("The Policy's Name Is Not Valid."); } if (string.IsNullOrEmpty(_policy.Guid)) { return("The Policy's Guid Is Not Valid."); } if (_policy.Frequency != EnumPolicy.Frequency.OncePerComputer && _policy.Frequency != EnumPolicy.Frequency.OncePerDay && _policy.Frequency != EnumPolicy.Frequency.OncePerMonth && _policy.Frequency != EnumPolicy.Frequency.OncePerUserPerComputer && _policy.Frequency != EnumPolicy.Frequency.OncePerWeek && _policy.Frequency != EnumPolicy.Frequency.Ongoing && _policy.Frequency != EnumPolicy.Frequency.EveryXdays && _policy.Frequency != EnumPolicy.Frequency.EveryXhours) { return("The Policy's Frequency Is Not Valid."); } if (_policy.Trigger != EnumPolicy.Trigger.Checkin && _policy.Trigger != EnumPolicy.Trigger.Login && _policy.Trigger != EnumPolicy.Trigger.Startup && _policy.Trigger != EnumPolicy.Trigger.StartupOrCheckin) { return("The Policy's Trigger Is Not Valid."); } if (_policy.RunInventory != EnumPolicy.InventoryAction.After && _policy.RunInventory != EnumPolicy.InventoryAction.Before && _policy.RunInventory != EnumPolicy.InventoryAction.Both && _policy.RunInventory != EnumPolicy.InventoryAction.Disabled) { return("The Policy's Run Inventory Is Not Valid."); } int value; if (!int.TryParse(_policy.SubFrequency.ToString(), out value)) { return("The Policy's Sub Frequency Is Not Valid."); } if (_policy.CompletedAction != EnumPolicy.CompletedAction.DoNothing && _policy.CompletedAction != EnumPolicy.CompletedAction.Reboot && _policy.CompletedAction != EnumPolicy.CompletedAction.RebootIfNoLogins) { return("The Policy's Completed Action Is Not Valid."); } if (_policy.ExecutionType != EnumPolicy.ExecutionType.Cache && _policy.ExecutionType != EnumPolicy.ExecutionType.Install) { return("The Policy's Execution Type Is Not Valid."); } if (_policy.ErrorAction != EnumPolicy.ErrorAction.AbortCurrentPolicy && _policy.ErrorAction != EnumPolicy.ErrorAction.AbortRemainingPolicies && _policy.ErrorAction != EnumPolicy.ErrorAction.Continue) { return("The Policy's Error Action Is Not Valid"); } if (_policy.MissedAction != EnumPolicy.FrequencyMissedAction.NextOpportunity && _policy.MissedAction != EnumPolicy.FrequencyMissedAction.ScheduleDayOnly) { return("The Policy's Frequency Missed Action Is Not Valid."); } if (_policy.LogLevel != EnumPolicy.LogLevel.Full && _policy.LogLevel != EnumPolicy.LogLevel.HiddenArguments && _policy.LogLevel != EnumPolicy.LogLevel.None) { return("The Policy's Log Level Is Not Valid."); } if (_policy.WuType != EnumPolicy.WuType.Disabled && _policy.WuType != EnumPolicy.WuType.Microsoft && _policy.WuType != EnumPolicy.WuType.MicrosoftSkipUpgrades && _policy.WuType != EnumPolicy.WuType.Wsus && _policy.WuType != EnumPolicy.WuType.WsusSkipUpgrades) { return("The Policy's Windows Update Type Is Not Valid."); } if (_policy.AutoArchiveType != EnumPolicy.AutoArchiveType.AfterXdays && _policy.AutoArchiveType != EnumPolicy.AutoArchiveType.None && _policy.AutoArchiveType != EnumPolicy.AutoArchiveType.WhenComplete) { return("The Policy's Auto Archive Type Is Not Valid."); } if (_policy.AutoArchiveType == EnumPolicy.AutoArchiveType.AfterXdays) { int autoArchiveSub; if (!int.TryParse(_policy.AutoArchiveSub, out autoArchiveSub)) { return("The Policy's Auto Archive Sub Is Not Valid."); } } if (_policy.WindowStartScheduleId != -1) { var schedule = new ServiceSchedule().GetSchedule(_policy.WindowStartScheduleId); if (schedule == null) { return("The Policy's Start Schedule Id Is Not Valid."); } } if (_policy.WindowEndScheduleId != -1) { var schedule = new ServiceSchedule().GetSchedule(_policy.WindowEndScheduleId); if (schedule == null) { return("The Policy's End Schedule Id Is Not Valid."); } } if (_policy.PolicyComCondition != EnumPolicy.PolicyComCondition.Any && _policy.PolicyComCondition != EnumPolicy.PolicyComCondition.Selective) { return("The Policy's Com Server Condition Is Not Valid"); } if (_policy.PolicyComCondition == EnumPolicy.PolicyComCondition.Selective) { var policyComServers = _policyService.GetPolicyComServers(_policy.Id); if (policyComServers == null) { return("The Policy's Selected Com Servers Are Not Valid"); } if (policyComServers.Count == 0) { return("The Policy's Selected Com Servers Are Not Valid. At Least One Server Must Be Selected."); } foreach (var policyComServer in policyComServers) { var comServer = new ServiceClientComServer().GetServer(policyComServer.ComServerId); if (comServer == null) { return("The Policy's Selected Com Servers Are Not Valid. A Specified Com Server Does Not Exist"); } } } if (_policy.ConditionId != -1) // -1 = disabled { var conditionScript = new ServiceScriptModule().GetModule(_policy.ConditionId); if (conditionScript == null) { return($"Condition Script For {_policy.Name} Does Not Exist"); } if (!conditionScript.IsCondition) { return($"The Condition Script For {_policy.Name} Is Not Currently Set As A Condition"); } if (string.IsNullOrEmpty(conditionScript.Name)) { return($"A Condition Script For {_policy.Name} Has An Invalid Name"); } if (conditionScript.Archived) { return($"A Condition Script For {_policy.Name} Is Archived"); } if (string.IsNullOrEmpty(conditionScript.ScriptContents)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Script. It Cannot Be Empty."); } if (string.IsNullOrEmpty(conditionScript.Guid)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid GUID"); } if (conditionScript.ScriptType != EnumScriptModule.ScriptType.Batch && conditionScript.ScriptType != EnumScriptModule.ScriptType.Powershell && conditionScript.ScriptType != EnumScriptModule.ScriptType.VbScript) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Type"); } if (!int.TryParse(conditionScript.Timeout.ToString(), out value)) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Timeout"); } List <string> successCodes = new List <string>(); foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { successCodes.Add(successCode); } if (successCodes.Count == 0) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Success Code"); } if (successCodes.Any(code => !int.TryParse(code, out value))) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Success Code"); } if (!string.IsNullOrEmpty(conditionScript.WorkingDirectory)) { try { Path.GetFullPath(conditionScript.WorkingDirectory); } catch { return("Condition Script: " + conditionScript.Name + " Has An Invalid Working Directory"); } } if (conditionScript.ImpersonationId != -1) { var impAccount = new ServiceImpersonationAccount().GetAccount(conditionScript.ImpersonationId); if (impAccount == null) { return("Condition Script: " + conditionScript.Name + " Has An Invalid Impersonation Account"); } } if (_policy.ConditionFailedAction != EnumCondition.FailedAction.MarkFailed && _policy.ConditionFailedAction != EnumCondition.FailedAction.MarkNotApplicable && _policy.ConditionFailedAction != EnumCondition.FailedAction.MarkSkipped && _policy.ConditionFailedAction != EnumCondition.FailedAction.MarkSuccess) { return($"The Condition Failed Action For {_policy.Name} Is Not Valid"); } } return(null); }
public ImpersonationAccountController() { _impersonationAccountService = new ServiceImpersonationAccount(); }