示例#1
0
        public static string GetUpgradeCode(SetupFeatures feature)
        {
            string guid = null;

            switch (feature)
            {
            case SetupFeatures.ExtensionCommon:
                guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2C";
                break;

            case SetupFeatures.TenantExtension:
                guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2B";
                break;

            case SetupFeatures.AdminExtension:
                guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2D";
                break;

            case SetupFeatures.Server:
                guid = "93CAADEF-B45F-4343-B824-B90245A80500";
                break;
            }

            return("{" + guid + "}");
        }
示例#2
0
        /// <summary>
        /// Parses the command line.
        /// </summary>
        /// <param name="commandLine">The command line.</param>
        /// <returns>true if no errors</returns>
        private static bool ParseCommandLine()
        {
            // Get command line arguments and decide if setup is to be Unattended
            String[] arguments = Environment.GetCommandLineArgs();
            CommandlineParameters commandlineParameters = new CommandlineParameters();

            // Parse command line arguments
            commandlineParameters.ParseCommandline(arguments);

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Help) == true)
            {
                MessageBox.Show(WPFResourceDictionary.CommandlineUsage, WPFResourceDictionary.SetupMessageBoxTitle, MessageBoxButton.OK);
                return(false);
            }

            SetupLogger.LogInfo("Main : Current directory = {0}", Environment.CurrentDirectory);

            if (commandlineParameters.IsParameterSpecified(CommandlineParameterId.Action) == false)
            {
                commandlineParameters.SetParameterValue(CommandlineParameterId.Action, SetupActions.UserInterface);
            }

            if ((SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action) == SetupActions.UnattendedInstall &&
                (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.AcceptLicense) == false &&
                (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup) == false)
            {
                SetupLogger.LogInfo("Have NOT acknowledge acceptance of the license terms in unattended install.");
                return(false);
            }

            String iniFile = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.IniFile);

            try
            {
                if (iniFile == null)
                {
                    SetupInputs.Instance.LoadParameterList(parameterList);
                }
                else
                {
                    SetupInputs.Instance.LoadFrom(iniFile, parameterList);
                }
            }
            catch (Exception ex)
            {
                SetupLogger.LogInfo("ParseCommandLine() ", ex);
                return(false);
            }

            // Need to save the installation location in property bag for prerequisite check
            String installationLocation = SetupInputs.Instance.FindItem(SetupInputTags.BinaryInstallLocationTag);

            PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.InstallationLocation, installationLocation);

            String installSource = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.SetupLocation);

            if (!String.IsNullOrEmpty(installSource))
            {
                installSource = Path.Combine(installSource, SetupConstants.SetupFolder);
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.LocationOfSetupFiles, installSource);
            }
            else
            {
                installSource = PropertyBagDictionary.Instance.GetProperty <string>(PropertyBagDictionary.SetupExePath);
            }
            String certificateThumbprint = SetupInputs.Instance.FindItem(SetupInputTags.CmpCertificateThumbprintTag);

            if (!String.IsNullOrEmpty(certificateThumbprint))
            {
                certificateThumbprint = "LocalMachine,My," + certificateThumbprint;
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.CMPCertificateThumbprint, certificateThumbprint);
            }

            SetupLogger.LogInfo("OriginalInstallSource: {0}", installSource);
            SetupActions setupAction = (SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action);

            if (setupAction == SetupActions.UnattendedUninstall)
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Uninstall, "1");
            }
            if (setupAction != SetupActions.UserInterface)
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagDictionary.Silent, true);

                SetupFeatures setupFeaturesFlags = (SetupFeatures)commandlineParameters.GetParameterValue(CommandlineParameterId.Feature);
                if ((setupFeaturesFlags & SetupFeatures.TenantExtension) == SetupFeatures.TenantExtension)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.TenantExtension, "1");
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1");
                }
                if ((setupFeaturesFlags & SetupFeatures.AdminExtension) == SetupFeatures.AdminExtension)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.AdminExtension, "1");
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1");
                }
                if ((setupFeaturesFlags & SetupFeatures.Server) == SetupFeatures.Server)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Server, "1");
                }
            }

            bool isLocalSystemAccount = SetupInputs.Instance.FindItem(SetupInputTags.CmpServiceLocalAccountTag);

            if (!isLocalSystemAccount)
            {
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceDomain));
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserName));
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserPassword));
            }

            bool isDatabaseImpersonation = SetupInputs.Instance.FindItem(SetupInputTags.RemoteDatabaseImpersonationTag);

            if (isDatabaseImpersonation)
            {
                try
                {
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminDomain));
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminName));
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminPassword));
                }
                catch (Exception ex)
                {
                    SetupLogger.LogInfo("ParseCommandLine(), SqlDBAdminDomain or SqlDBAdminName or SqlDBAdminPassword is null  or invalid", ex);
                    return(false);
                }
            }

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup))
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionPreparation, true);
            }

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Configure))
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionConfiguration, true);
            }


            return(true);
        }