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(); }
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())); }
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")); } }
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(); }
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); } }
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); } }
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(); }
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); } }
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(); }
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); }
private static void RunAdamInstall(string answerFileName) { string arguments = "/answer:\"" + answerFileName + "\""; ManageAdamService.RunAdamInstallUninstallProcess(true, "adamInstall.exe", arguments, ManageAdamService.GetAdamToolsDir()); }
public static void UninstallAdam(string instanceName) { ManageAdamService.RunAdamUninstall(instanceName); AdamServiceSettings.DeleteFromRegistry(instanceName); }
private static void RunAdamUninstall(string instanceName) { string arguments = "/q /force /i:\"" + instanceName + "\""; ManageAdamService.RunAdamInstallUninstallProcess(false, "adamUninstall.exe", arguments, ManageAdamService.GetAdamToolsDir()); }
private static string GetAdamInstallExePath() { string adamToolsDir = ManageAdamService.GetAdamToolsDir(); return(Path.Combine(adamToolsDir, "adamInstall.exe")); }