我试图在操作系统中找到使用C#,如果MSOnline PowerShell模块可用。
从第一眼看 - 没什么难的。我们可以从C#调用PowerShell方法。但由于某种原因,我尝试使用的所有代码片段都没有得到MSOnline模块的结果。
例如,我们使用方法http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C并传递命令,如:
Get-Module -ListAvailable -Name(这是名称)
因此,如果我们为TLS模块运行它 - 它工作正常。在下面的图片中,我们看到它在C#控制台应用程序中的工作原理以及它在PowerShell中的外观。看起来很公平。
但是如果我们尝试查找MSOnline模块,一切都会改变:
正如我们所见 - C#程序没有给出结果,而PowerShell本身向我们展示了该模块可用。
我真的很困惑。我认为这与我的电脑有关,但我检查过一些不同的电脑,包括Server 2012 R2。结果是相同的 - 即使我们使用与PS中完全相同的命令,也无法通过C#查找此模块。
有没有人见过这样的问题?如果是 - 如果存在MSOnline PS模块,可以通过C#进行检测。
谢谢。
答案 0 :(得分:1)
实际上我为自己的问题找到了一个解决方案:
您需要确保您的程序和模块具有32位或64位。
MSOnline正在运行x64,如果你的程序是针对32位系统或者有任何CPU并且在运行时运行32位 - 你将得到零结果。
那就是它。