Ejemplo n.º 1
0
 public ModuleScriptManager(DtoClientScriptModule module)
 {
     _moduleResult         = new DtoModuleResult();
     _moduleResult.Name    = module.DisplayName;
     _moduleResult.Guid    = module.Guid;
     _moduleResult.Success = true;
     _module = module;
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }