Ejemplo n.º 1
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter();
     try
     {
         ManageAdamService.InstallAdam(this.InstanceName, this.DataFilesPath, this.LogFilesPath, this.Port, this.SslPort, new WriteVerboseDelegate(base.WriteVerbose));
     }
     catch (AdamInstallFailureDataOrLogFolderNotEmptyException exception)
     {
         base.WriteError(exception, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamInstallProcessFailureException exception2)
     {
         base.WriteError(exception2, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamInstallGeneralFailureWithResultException exception3)
     {
         base.WriteError(exception3, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamInstallErrorException exception4)
     {
         base.WriteError(exception4, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamSetAclsProcessFailureException exception5)
     {
         base.WriteError(exception5, ErrorCategory.InvalidOperation, null);
     }
     TaskLogger.LogExit();
 }
Ejemplo n.º 2
0
        private static int RunAdamSchemaImport(string instanceName, string schemaFilePath, string macroName, string macroValue, string tempDir)
        {
            int    ldapPort = AdamServiceSettings.GetFromRegistry(instanceName).LdapPort;
            string schemaImportProcessArguments = ManageAdamService.GetSchemaImportProcessArguments(schemaFilePath, ldapPort, tempDir, macroName, macroValue);

            return(Utils.LogRunProcess("ldifde.exe", schemaImportProcessArguments, ManageAdamService.GetAdamToolsDir()));
        }
Ejemplo n.º 3
0
        private static void SetAdamServiceArgs(string instanceName, WriteVerboseDelegate writeVerbose)
        {
            string arguments = string.Concat(new string[]
            {
                "description ",
                ManageAdamService.GetAdamServiceName(instanceName),
                " \"",
                Strings.AdamServiceDescription,
                "\""
            });
            int num = Utils.LogRunProcess("sc.exe", arguments, null);

            if (num != 0)
            {
                writeVerbose(Strings.AdamFailedSetServiceArgs("sc.exe", num, "Description"));
            }
            arguments = string.Concat(new string[]
            {
                "config ",
                ManageAdamService.GetAdamServiceName(instanceName),
                " DisplayName= \"",
                Strings.AdamServiceDisplayName,
                "\""
            });
            num = Utils.LogRunProcess("sc.exe", arguments, null);
            if (num != 0)
            {
                writeVerbose(Strings.AdamFailedSetServiceArgs("sc.exe", num, "DisplayName"));
            }
        }
Ejemplo n.º 4
0
 private static void InstallAdamInstance(string answerFileName, AdamServiceSettings adamServiceSettings, WriteVerboseDelegate writeVerbose)
 {
     TaskLogger.LogEnter();
     ManageAdamService.RunAdamInstall(answerFileName);
     ManageAdamService.SetAdamServiceArgs(adamServiceSettings.InstanceName, writeVerbose);
     ManageAdamService.SetAcls(adamServiceSettings);
     TaskLogger.LogExit();
 }
Ejemplo n.º 5
0
        private static void RunDsAcls(AdamServiceSettings adamServiceSettings, string subTreeDn)
        {
            string arguments = string.Format("\"\\\\localhost:{0}\\{1}\" /I:T /G \"NT AUTHORITY\\SYSTEM\":GR;; \"NT AUTHORITY\\NETWORKSERVICE\":GR;; \"{2}\":GA;;", adamServiceSettings.LdapPort, subTreeDn, ManageAdamService.BuiltinAdminSid);
            int    num       = Utils.LogRunProcess("dsacls.exe", arguments, ManageAdamService.GetAdamToolsDir());

            if (num != 0)
            {
                throw new AdamSetAclsProcessFailureException("dsacls.exe", num, subTreeDn);
            }
        }
Ejemplo n.º 6
0
 private static void SetAcls(AdamServiceSettings adamServiceSettings)
 {
     ManageAdamService.RunDsAcls(adamServiceSettings, "OU=MSExchangeGateway");
     using (DirectoryEntry rootDirectoryEntry = AdsUtils.GetRootDirectoryEntry(adamServiceSettings.LdapPort))
     {
         string text = (string)rootDirectoryEntry.Properties["ConfigurationNamingContext"].Value;
         ManageAdamService.RunDsAcls(adamServiceSettings, text);
         string subTreeDn = "CN=Deleted Objects," + text;
         ManageAdamService.RunDsAcls(adamServiceSettings, subTreeDn);
         ManageAdamService.SetAdministrator(adamServiceSettings, text);
     }
 }
Ejemplo n.º 7
0
        public static void InstallAdam(string instanceName, string dataPath, string logPath, int port, int sslPort, WriteVerboseDelegate writeVerbose)
        {
            Utils.CreateDirectory(dataPath, "DataFilesPath");
            Utils.CreateDirectory(logPath, "LogFilesPath");
            AdamServiceSettings.DeleteFromRegistry(instanceName);
            AdamServiceSettings adamServiceSettings = new AdamServiceSettings(instanceName, Path.Combine(dataPath, "Adam"), Path.Combine(logPath, "Adam"), port, sslPort);

            using (TempFileCollection tempFileCollection = new TempFileCollection())
            {
                string answerFileName = ManageAdamService.MakeAnswerFile(tempFileCollection, adamServiceSettings);
                ManageAdamService.InstallAdamInstance(answerFileName, adamServiceSettings, writeVerbose);
                adamServiceSettings.SaveToRegistry();
            }
        }
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.InstanceName
     });
     try
     {
         ManageAdamService.ImportAdamSchema(this.InstanceName, this.LdapFileName, this.MacroName, this.MacroValue);
     }
     catch (AdamSchemaImportProcessFailureException exception)
     {
         base.WriteError(exception, ErrorCategory.InvalidOperation, null);
     }
     TaskLogger.LogExit();
 }
Ejemplo n.º 9
0
        public static void ImportAdamSchema(string instanceName, string schemaFilePath, string macroName, string macroValue)
        {
            string tempDir = Utils.GetTempDir();

            Directory.CreateDirectory(tempDir);
            try
            {
                int    num = ManageAdamService.RunAdamSchemaImport(instanceName, schemaFilePath, macroName, macroValue, tempDir);
                string schemaImportLogFilePath = Path.Combine(tempDir, "ldif.log");
                ManageAdamService.AppendSchemaImportLogFileIfExists(schemaImportLogFilePath, ManageAdamService.AdamSchemaImportCumulativeLogFilePath, instanceName, schemaFilePath, macroName, macroValue);
                string schemaImportLogFilePath2 = Path.Combine(tempDir, "ldif.err");
                ManageAdamService.AppendSchemaImportLogFileIfExists(schemaImportLogFilePath2, ManageAdamService.AdamSchemaImportCumulativeErrorFilePath, instanceName, schemaFilePath, macroName, macroValue);
                if (num != 0)
                {
                    throw new AdamSchemaImportProcessFailureException("ldifde.exe", num);
                }
            }
            finally
            {
                Directory.Delete(tempDir, true);
            }
        }
Ejemplo n.º 10
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter(new object[]
     {
         this.InstanceName
     });
     try
     {
         ManageAdamService.UninstallAdam(this.InstanceName);
     }
     catch (AdamUninstallProcessFailureException exception)
     {
         base.WriteError(exception, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamUninstallGeneralFailureWithResultException exception2)
     {
         base.WriteError(exception2, ErrorCategory.InvalidOperation, null);
     }
     catch (AdamUninstallErrorException exception3)
     {
         base.WriteError(exception3, ErrorCategory.InvalidOperation, null);
     }
     TaskLogger.LogExit();
 }
Ejemplo n.º 11
0
        private static void RunAdamInstallUninstallProcess(bool installing, string fileName, string arguments, string path)
        {
            ManageAdamService.ClearAdamInstallUninstallResults();
            int num = Utils.LogRunProcess(fileName, arguments, path);

            ManageAdamService.CheckAdamInstallUninstallResults(installing);
            if (num == 0)
            {
                return;
            }
            if (!installing)
            {
                Strings.AdamUninstallProcessFailure(fileName, num);
            }
            else
            {
                Strings.AdamInstallProcessFailure(fileName, num);
            }
            if (installing)
            {
                throw new AdamInstallProcessFailureException(fileName, num);
            }
            throw new AdamUninstallProcessFailureException(fileName, num);
        }
Ejemplo n.º 12
0
        private static void RunAdamInstall(string answerFileName)
        {
            string arguments = "/answer:\"" + answerFileName + "\"";

            ManageAdamService.RunAdamInstallUninstallProcess(true, "adamInstall.exe", arguments, ManageAdamService.GetAdamToolsDir());
        }
Ejemplo n.º 13
0
 public static void UninstallAdam(string instanceName)
 {
     ManageAdamService.RunAdamUninstall(instanceName);
     AdamServiceSettings.DeleteFromRegistry(instanceName);
 }
Ejemplo n.º 14
0
        private static void RunAdamUninstall(string instanceName)
        {
            string arguments = "/q /force /i:\"" + instanceName + "\"";

            ManageAdamService.RunAdamInstallUninstallProcess(false, "adamUninstall.exe", arguments, ManageAdamService.GetAdamToolsDir());
        }
Ejemplo n.º 15
0
        private static string GetAdamInstallExePath()
        {
            string adamToolsDir = ManageAdamService.GetAdamToolsDir();

            return(Path.Combine(adamToolsDir, "adamInstall.exe"));
        }