#pragma once #include #include "VarSetBase.h" //--------------------------------------------------------------------------- // VarSet Options Class //--------------------------------------------------------------------------- class CVarSetOptions : public CVarSet { public: CVarSetOptions(const CVarSet& rVarSet) : CVarSet(rVarSet) { // Put(DCTVS_Options_MaxThreads, 20L); // TODO: these credentials are used during security translation? // Put(DCTVS_Options_Credentials_Domain, (LPCTSTR)NULL); // Put(DCTVS_Options_Credentials_UserName, (LPCTSTR)NULL); // Put(DCTVS_Options_Credentials_Password, (LPCTSTR)NULL); _bstr_t strLogFolder = GetLogFolder(); Put(DCTVS_Options_DontBeginNewLog, true); Put(DCTVS_Options_AppendToLogs, true); Put(DCTVS_Options_Logfile, strLogFolder + _T("Migration.log")); Put(DCTVS_Options_DispatchLog, strLogFolder + _T("Dispatch.log")); Put(DCTVS_Options_AutoCloseHideDialogs, 2L); } // void SetTest(bool bTest) { Put(DCTVS_Options_NoChange, bTest); } void SetUndo(bool bUndo) { Put(DCTVS_Options_Undo, bUndo); } void SetWizard(LPCTSTR pszWizard) { Put(DCTVS_Options_Wizard, pszWizard); } void SetIntraForest(bool bIntraForest) { Put(DCTVS_Options_IsIntraforest, bIntraForest); } void SetSourceDomain(LPCTSTR pszNameFlat, LPCTSTR pszNameDns, LPCTSTR pszSid = NULL) { Put(DCTVS_Options_SourceDomain, pszNameFlat); Put(DCTVS_Options_SourceDomainDns, (pszNameDns && pszNameDns[0]) ? pszNameDns : pszNameFlat); if (pszSid) { Put(DCTVS_Options_SourceDomainSid, pszSid); } } void SetTargetDomain(LPCTSTR pszNameFlat, LPCTSTR pszNameDns) { Put(DCTVS_Options_TargetDomain, pszNameFlat); Put(DCTVS_Options_TargetDomainDns, pszNameDns); } void SetTargetOu(LPCTSTR pszOu) { Put(DCTVS_Options_OuPath, pszOu); } // only set if copying passwords void SetTargetServer(LPCTSTR pszServer) { Put(DCTVS_Options_TargetServerOverride, pszServer); } void SetRenameOptions(long lOption, LPCTSTR pszPrefixOrSuffix) { switch (lOption) { case admtRenameWithPrefix: { if (pszPrefixOrSuffix && (_tcslen(pszPrefixOrSuffix) > 0)) { if (IsValidPrefixOrSuffix(pszPrefixOrSuffix)) { Put(DCTVS_Options_Prefix, pszPrefixOrSuffix); Put(DCTVS_Options_Suffix, (LPCTSTR)NULL); } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_INVALID_RENAME_PREFIX_SUFFIX); } } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_NO_RENAME_PREFIX); } break; } case admtRenameWithSuffix: { if (pszPrefixOrSuffix && (_tcslen(pszPrefixOrSuffix) > 0)) { if (IsValidPrefixOrSuffix(pszPrefixOrSuffix)) { Put(DCTVS_Options_Prefix, (LPCTSTR)NULL); Put(DCTVS_Options_Suffix, pszPrefixOrSuffix); } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_INVALID_RENAME_PREFIX_SUFFIX); } } else { AdmtThrowError(GUID_NULL, GUID_NULL, E_INVALIDARG, IDS_E_RENAME_NO_SUFFIX); } break; } } } void SetRestartDelay(long lTime) { Put(DCTVS_Options_GuiOnlyRebootSaver, lTime); } };