我正在使用wuapi
编写一个脚本,用于扫描,下载和安装未连接到Internet的计算机的更新。我已完成大部分此脚本,但我需要能够对其他对象进行演员(我相信)。
我在这里找到了完全符合我需要的代码,但在C#:WUApiLib IUpdateInstaller2 yields Error; Some OS updates install others throw HResult -2145124318
这是代码的样子:
var collection = new UpdateCollection();
IList<string> updateFiles = Directory.GetFiles(updateFolder);
var fileCollection = new StringCollection();
try
{
foreach (var file in updateFiles)
fileCollection.Add(file);
//Error happens here on certain updates. Not all.
/** THIS LINE BELOW IS THE ONE I NEED **/
((IUpdate2)update.BundledUpdates[0]).CopyToCache(fileCollection);
collection.Add(update);
return collection;
}
catch (Exception e)
{
return null;
}
行((IUpdate2)update.BundledUpdates[0]).CopyToCache(fileCollection);
返回IUpdate
个对象,但为了使用CopyToCache
函数,它必须是IUpdate2
个对象。我似乎无法弄清楚如何让这部分工作,因为powershell给了我一个“加载库”类型的错误。
有人知道我在powershell中如何做到这一点吗?
答案 0 :(得分:1)
如果问题是方法CopyToCache
是作为显式接口实现实现的,可以尝试
[IUpdate2].GetMethod("CopyToCache").Invoke($update.BundledUpdates[0], @($fileCollection))
或类似。