예제 #1
0
        public static ActionResult UnRegisterOutlookAddin(Session session)
        {
            session.Log("Begin UnRegisterOutlookAddin");

            try
            {
                OsBitness osBitness = GetOsBitness();
                session.Log("OS bitness is : " + osBitness.ToString());
                OfficeBitness officeBitness = GetOfficeBitness(osBitness);
                session.Log("Office bitness is : " + officeBitness.ToString());
                OfficeRelease officeRelease = GetOfficeRelease(osBitness);
                session.Log("Office release is : " + officeRelease.ToString());

                session.Log("Unregistering Outlook Addin…");
                UnRegisterAddin(osBitness, officeBitness);
                session.Log("Unwhitelisting Addin…");
                UnWhitelistAddin(osBitness, officeBitness, officeRelease);
            }
            catch (Exception ex)
            {
                session.Log("An error occurs while unregistering Outlook Addin : " + ex.Message);
            }

            return(ActionResult.Success);
        }
예제 #2
0
        private static void UnWhitelistAddin(OsBitness osBitness, OfficeBitness officeBitness, OfficeRelease officeRelease)
        {
            try
            {
                RegistryKey HKLM      = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64));
                RegistryKey officeKey = null;

                switch (officeRelease)
                {
                case OfficeRelease.Office2013:
                    officeKey = HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Office\15.0\Outlook\Resiliency\DoNotDisableAddinList", true);
                    break;

                case OfficeRelease.Office2016:
                    officeKey = HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList", true);
                    break;
                }
                if (officeKey != null)
                {
                    officeKey.DeleteValue("SmartSingularity.PstBackupAddin", false);
                    officeKey.Close();
                }
                HKLM.Close();
            }
            catch (Exception) { }
        }
예제 #3
0
        private static void WhitelistAddin(OsBitness osBitness, OfficeBitness officeBitness, OfficeRelease officeRelease)
        {
            RegistryKey HKLM      = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, (officeBitness == OfficeBitness.Office32 ? RegistryView.Registry32 : RegistryView.Registry64));
            RegistryKey officeKey = null;

            switch (officeRelease)
            {
            case OfficeRelease.Office2010:
                officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\14.0\Outlook\Resiliency\DoNotDisableAddinList", true);
                break;

            case OfficeRelease.Office2013:
                officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\15.0\Outlook\Resiliency\DoNotDisableAddinList", true);
                break;

            case OfficeRelease.Office2016:
                officeKey = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList", true);
                break;
            }
            officeKey.SetValue("SmartSingularity.PstBackupAddin", (object)1, RegistryValueKind.DWord);

            officeKey.Close();
            HKLM.Close();
        }