No offense meant, but himitsu hat mMn bereits die optimale Lösung genannt.
Das Environment ist "beliebig" (spätestens wenn das Programm von einem anderen ferngestartet wird, kann der ein beliebiges Environment übergeben oder auch mal aus Versehen ein leeres).
Und
WMI ist eine viel zu hohe Ebene, das kann aus diversen Gründen auch mal scheitern, während die Möglichkeit, DLLs dynamisch zu laden, so grundlegend ist, daß das System, wenn das nicht mehr ginge, eh nicht mehr laufen würde