如何检测MSOnline PowerShell模块是否可用 - 通过C#

时间:2016-06-09 19:00:07

标签: c# .net powershell office365

我试图在操作系统中找到使用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中的外观。看起来很公平。

enter image description here

但是如果我们尝试查找MSOnline模块,一切都会改变:

enter image description here

正如我们所见 - C#程序没有给出结果,而PowerShell本身向我们展示了该模块可用。

我真的很困惑。我认为这与我的电脑有关,但我检查过一些不同的电脑,包括Server 2012 R2。结果是相同的 - 即使我们使用与PS中完全相同的命令,也无法通过C#查找此模块。

有没有人见过这样的问题?如果是 - 如果存在MSOnline PS模块,可以通过C#进行检测。

谢谢。

1 个答案:

答案 0 :(得分:1)

实际上我为自己的问题找到了一个解决方案:

您需要确保您的程序和模块具有32位或64位。

MSOnline正在运行x64,如果你的程序是针对32位系统或者有任何CPU并且在运行时运行32位 - 你将得到零结果。

那就是它。

相关问题