| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- Function GenerateOID()
- 'Initializing Variables
- Dim guidString, oidPrefix
- Dim guidPart0, guidPart1, guidPart2, guidPart3, guidPart4, guidPart5, guidPart6
- Dim oidPart0, oidPart1, oidPart2, oidPart3, oidPart4, oidPart5, oidPart6
- On Error Resume Next
- 'Generate GUID
- Set TypeLib = CreateObject("Scriptlet.TypeLib")
- guidString = TypeLib.Guid
- 'If no network card is available on the machine then generating GUID can result with an error.
- If Err.Number <> 0 Then
- Wscript.Echo "ERROR: Guid could not be generated, please ensure machine has a network card."
- Err.Clear
- WScript.Quit
- End If
- 'Stop Error Resume Next
- On Error GoTo 0
- 'The Microsoft OID Prefix used for the automated OID Generator
- oidPrefix = "1.2.840.113556.1.8000.2554"
- 'Split GUID into 6 hexadecimal numbers
- guidPart0 = Trim(Mid(guidString, 2, 4))
- guidPart1 = Trim(Mid(guidString, 6, 4))
- guidPart2 = Trim(Mid(guidString, 11, 4))
- guidPart3 = Trim(Mid(guidString, 16, 4))
- guidPart4 = Trim(Mid(guidString, 21, 4))
- guidPart5 = Trim(Mid(guidString, 26, 6))
- guidPart6 = Trim(Mid(guidString, 32, 6))
- 'Convert the hexadecimal to decimal
- oidPart0 = CLng("&H" & guidPart0)
- oidPart1 = CLng("&H" & guidPart1)
- oidPart2 = CLng("&H" & guidPart2)
- oidPart3 = CLng("&H" & guidPart3)
- oidPart4 = CLng("&H" & guidPart4)
- oidPart5 = CLng("&H" & guidPart5)
- oidPart6 = CLng("&H" & guidPart6)
- 'Concatenate all the generated OIDs together with the assigned Microsoft prefix and return
- GenerateOID = oidPrefix & "." & oidPart0 & "." & oidPart1 & "." & oidPart2 & "." & oidPart3 & _
- "." & oidPart4 & "." & oidPart5 & "." & oidPart6
- End Function
- Set objFSO=CreateObject("scripting.FileSystemObject")
- outFile="C:/X500UID.txt"
- Set objFile = objFSO.createTextFile(outFile, true)
- objFile.Write GenerateOID &VBCRLF
- objFile.Close
- 'Output the resulted OID with best practice info
- Wscript.Echo "X500 UID saved in C:/X500UID.txt"
|