public ModuleScriptManager(DtoClientScriptModule module) { _moduleResult = new DtoModuleResult(); _moduleResult.Name = module.DisplayName; _moduleResult.Guid = module.Guid; _moduleResult.Success = true; _module = module; }
private bool DownloadScriptFile(DtoClientScriptModule module) { string ext; if (module.ScriptType == EnumScriptModule.ScriptType.Powershell) { ext = ".ps1"; } else if (module.ScriptType == EnumScriptModule.ScriptType.VbScript) { ext = ".vbs"; } else if (module.ScriptType == EnumScriptModule.ScriptType.Batch) { ext = ".bat"; } else { Logger.Error("Could Not Determine Script Type. Exiting."); return(false); } var scriptContents = _policy.Trigger == EnumPolicy.Trigger.Login ? new APICall().LocalApi.GetScript(module.Guid) : new APICall().PolicyApi.GetScript(module.Guid); if (string.IsNullOrEmpty(scriptContents)) { return(false); } try { using ( var file = new StreamWriter(Path.Combine(DtoGobalSettings.BaseCachePath, module.Guid, module.Guid + ext))) { file.WriteLine(scriptContents); } return(true); } catch (Exception ex) { Logger.Error(ex.Message); return(false); } }
private void ScriptModule(EntityPolicyModules policyModule) { var clientScriptModule = new DtoClientScriptModule(); var scriptModule = new ServiceScriptModule().GetModule(policyModule.ModuleId); clientScriptModule.Guid = scriptModule.Guid; clientScriptModule.DisplayName = scriptModule.Name; clientScriptModule.Arguments = scriptModule.Arguments; clientScriptModule.Order = policyModule.Order; clientScriptModule.Timeout = scriptModule.Timeout; clientScriptModule.ScriptType = scriptModule.ScriptType; clientScriptModule.RedirectOutput = scriptModule.RedirectStdOut; clientScriptModule.RedirectError = scriptModule.RedirectStdError; clientScriptModule.AddToInventory = scriptModule.AddInventoryCollection; clientScriptModule.WorkingDirectory = scriptModule.WorkingDirectory; clientScriptModule.IsCondition = scriptModule.IsCondition; foreach (var successCode in scriptModule.SuccessCodes.Split(',')) { clientScriptModule.SuccessCodes.Add(successCode); } if (scriptModule.ImpersonationId != -1) { var impersonationGuid = new ServiceImpersonationAccount().GetGuid(scriptModule.ImpersonationId); if (!string.IsNullOrEmpty(impersonationGuid)) { clientScriptModule.RunAs = impersonationGuid; } } if (policyModule.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript != null) { clientScriptModule.ConditionFailedAction = policyModule.ConditionFailedAction; clientScriptModule.ConditionNextOrder = policyModule.ConditionNextModule; clientScriptModule.Condition = new DtoClientModuleCondition(); clientScriptModule.Condition.Arguments = conditionScript.Arguments; clientScriptModule.Condition.DisplayName = conditionScript.Name; clientScriptModule.Condition.Guid = conditionScript.Guid; clientScriptModule.Condition.RedirectError = conditionScript.RedirectStdError; clientScriptModule.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { clientScriptModule.Condition.RunAs = scriptImpersonationGuid; } } clientScriptModule.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { clientScriptModule.Condition.SuccessCodes.Add(successCode); } clientScriptModule.Condition.Timeout = conditionScript.Timeout; clientScriptModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } _clientPolicy.ScriptModules.Add(clientScriptModule); }