I never thought the .NET Framework did enough complexity hiding to justify a 60MB installed size, especially if it was just providing a bit of plumbing to get you back down to the COM level.
Most COM interfaces support late binding, so you can easily call them from a language like JavaScript, which is already installed in Windows as part of the platform. Ten years before node.js existed, you could run this JavaScript on Windows 2000 to read and print a file:
var fso = new ActiveXObject("Scripting.FileSystemObject");
if ( fso.FileExists("myfile.txt") ) {
var ts = fso.OpenTextFile("myfile.txt", ForReading);
WScript.Echo(ts.ReadAll());
WScript.Quit(0);
} else {
WScript.Echo("File Not Found");
WScript.Quit(1);
}