Back in 2007, the Microsoft Scripting Guys posted a article titled “Hey, Scripting Guy! Be Careful What You Say.” This article changed everything in the way I scripted because it should how simply you can access some .Net classes through COM callable wrappers. The two they focus on are “System.Random” and “System.Collections.ArrayList”.
Set objRandom = CreateObject("System.Random") Set objArrList = CreateObject("System.Collections.ArrayList")
When scripting in AD, Exchange or even the desktop, I am consistently working with arrays. Adding items and sorting arrays always required custom functions, overly wordy statements or re-dimensioning. This made working with arrays cumbersome. Their example for sorting the non-.net way:
For i = (UBound(arrNames) - 1) to 0 Step -1 For j= 0 to i If UCase(arrNames(j)) > UCase(arrNames(j+1)) Then strHolder = arrNames(j+1) arrNames(j+1) = arrNames(j) arrNames(j) = strHolder End If Next Next
Now, using System.Collections.ArrayList:
You can find a complete list of available methods here: ArrayList Class.
Random numbers are handy for several uses. I typically use them for part of a file name when outputting temp files. Another great use is for auto-generating computer names in a test lab or deployment scenario.
In VB though, this was cumbersome and I always had to look up the exact syntax. And, the syntax isn’t exactly intuitive.
Randomize Wscript.Echo Int((100 - 1 + 1) * Rnd + 1)
With the System.Random class, this is a lot easier:
Set objRandom = CreateObject("System.Random") Wscript.Echo objRandom.Next_2(1000000,9999999)
You can find a complete list of available methods here: Random Class.