crexin

Retrieve or Reset Data Encryption Key in Dynamics 365 or Dynamics CRM on-premise deployments

Oct 19th, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.84 KB | None | 0 0
  1. /*
  2. Steps to recover or to reset Data Encryption Key in Dynamics CRM/365 organization in on-premise
  3. Use at your own risk!
  4.  
  5. Query MSCRM_Config for Getting data Encryption key from previous org, i.e. Test1
  6. https://szczepan.net/?p=152
  7.  
  8. var sb = new StringBuilder();
  9. var str = "0x37323A303A3130313A303A3130383A303A3130383A303A3131313A303A33323A303A38343A303A3130343A303A3130353A303A3131353A303A33323A303A37333A303A3131353A303A33323A303A3131323A303A39373A303A3131353A303A3131353A303A36343A303A3131393A303A3131313A303A3131343A303A3130303A303A34393A303A33323A303A3130323A303A3131343A303A3131313A303A3130393A303A33323A303A36373A303A38323A303A37373A30";
  10. for (int i = 2; i < str.Length; i += 2)
  11. {
  12. var b1 = byte.Parse(str.Substring(i, 2), NumberStyles.HexNumber);
  13.  
  14. var part = ASCIIEncoding.ASCII.GetString(new byte[] { b1 });
  15.  
  16. sb.Append(part);
  17. }
  18. Console.WriteLine(sb);
  19.  
  20. var parts = sb.ToString().Split(':');
  21. sb.Clear();
  22. for (int i = 0; i < parts.Length; i += 2)
  23. {
  24. var b1 = byte.Parse(parts[i]);
  25. var b2 = byte.Parse(parts[i + 1]);
  26. var part = UnicodeEncoding.Unicode.GetString(new byte[] { b1, b2 });
  27. sb.Append(part);
  28. }
  29. Console.WriteLine(sb);
  30. */
  31.  
  32.  
  33. USE MSCRM_Config
  34. GO
  35.  
  36. SELECT ColumnName, VarBinaryColumn FROM OrganizationProperties
  37. WHERE Id IN (SELECT Id FROM Organization WHERE UniqueName = 'Test1')
  38. AND (ColumnName = 'SymmetricKeySource')
  39.  
  40. /*
  41. SELECT Id,UniqueName FROM Organization
  42.  
  43. SELECT * FROM Organization
  44.  
  45. Id  UniqueName
  46. 5B4DB3A6-DDDD-E211-9C74-00219BA01ADD    Test1
  47. AAF23E2E-AAAA-4A65-A503-CC3F8893BD42    Test2
  48.  
  49.  
  50. */
  51.  
  52. --  Clear out Encrypted Data fields so you can start over with new data Encryption keys
  53. USE Test2_MSCRM
  54. GO
  55. UPDATE EmailServerProfile SET IncomingPassword=NULL
  56. UPDATE EmailServerProfile SET OutgoingPassword=NULL
  57. UPDATE Mailbox SET Password=NULL
  58. UPDATE Queue SET EmailPassword=NULL
  59. UPDATE UserSettings SET EmailPassword=NULL
Add Comment
Please, Sign In to add comment