X500 UID.vbs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. Function GenerateOID()
  2. 'Initializing Variables
  3. Dim guidString, oidPrefix
  4. Dim guidPart0, guidPart1, guidPart2, guidPart3, guidPart4, guidPart5, guidPart6
  5. Dim oidPart0, oidPart1, oidPart2, oidPart3, oidPart4, oidPart5, oidPart6
  6. On Error Resume Next
  7. 'Generate GUID
  8. Set TypeLib = CreateObject("Scriptlet.TypeLib")
  9. guidString = TypeLib.Guid
  10. 'If no network card is available on the machine then generating GUID can result with an error.
  11. If Err.Number <> 0 Then
  12. Wscript.Echo "ERROR: Guid could not be generated, please ensure machine has a network card."
  13. Err.Clear
  14. WScript.Quit
  15. End If
  16. 'Stop Error Resume Next
  17. On Error GoTo 0
  18. 'The Microsoft OID Prefix used for the automated OID Generator
  19. oidPrefix = "1.2.840.113556.1.8000.2554"
  20. 'Split GUID into 6 hexadecimal numbers
  21. guidPart0 = Trim(Mid(guidString, 2, 4))
  22. guidPart1 = Trim(Mid(guidString, 6, 4))
  23. guidPart2 = Trim(Mid(guidString, 11, 4))
  24. guidPart3 = Trim(Mid(guidString, 16, 4))
  25. guidPart4 = Trim(Mid(guidString, 21, 4))
  26. guidPart5 = Trim(Mid(guidString, 26, 6))
  27. guidPart6 = Trim(Mid(guidString, 32, 6))
  28. 'Convert the hexadecimal to decimal
  29. oidPart0 = CLng("&H" & guidPart0)
  30. oidPart1 = CLng("&H" & guidPart1)
  31. oidPart2 = CLng("&H" & guidPart2)
  32. oidPart3 = CLng("&H" & guidPart3)
  33. oidPart4 = CLng("&H" & guidPart4)
  34. oidPart5 = CLng("&H" & guidPart5)
  35. oidPart6 = CLng("&H" & guidPart6)
  36. 'Concatenate all the generated OIDs together with the assigned Microsoft prefix and return
  37. GenerateOID = oidPrefix & "." & oidPart0 & "." & oidPart1 & "." & oidPart2 & "." & oidPart3 & _
  38. "." & oidPart4 & "." & oidPart5 & "." & oidPart6
  39. End Function
  40. Set objFSO=CreateObject("scripting.FileSystemObject")
  41. outFile="C:/X500UID.txt"
  42. Set objFile = objFSO.createTextFile(outFile, true)
  43. objFile.Write GenerateOID &VBCRLF
  44. objFile.Close
  45. 'Output the resulted OID with best practice info
  46. Wscript.Echo "X500 UID saved in C:/X500UID.txt"