MiKTeX 2.6 will offer COM interfaces that make it possible to automate MiKTeX-specific tasks.
For example, here is a Perl script that installs a package:
use Win32::OLE;
my $packageManager = Win32::OLE->new('MiKTeX.PackageManager')
or die "MiKTeX is not properly installed.\n";
$installer = $packageManager->CreateInstaller();
$installer->Add ("$ARGV[0]", 1);
$installer->InstallRemove;
The MiKTeX interfaces are in its initial stages. Interested users and 3rd party developers are welcome to make suggestions for COM objects/methods.