有没有办法从.net-core运行PowerShell脚本?
我正在尝试在新的.net核心'website\api'中运行PowerShell脚本.从我所知道的,为了在.net上运行PowerShell,我们需要添加
System.Management.Automation命名空间.
这对于.net核心是不可能的(或者我没有找到合适的方法来添加它).有几个NuGet包也旨在将这个DLL添加到项目中,但这些也与.net内核不兼容.有没有办法在.net核心上执行此操作?以下是我尝试过的一些链接,但没有一个是.net核心特定的:
http://www.powershellmagazine.com/2014/03/18/writing-a-powershell-module-in-c-part-1-the-basics/
在Visual Studio中引用system.management.automation.dll
https://www.nuget.org/packages/System.Management.Automation/
我有这个使用 WMIC 获取 Windows 版本的代码段
(from x in new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<ManagementObject>()
select x.GetPropertyValue("Version")).FirstOrDefault().ToString();
Run Code Online (Sandbox Code Playgroud)
由于 WMI 现在被认为是遗留系统,并且System.Configuration 的 .NET Core 实现需要最新的 .NET Framework,因此似乎需要使用 MMI 检索此信息。
令人惊讶的是,每个需要 WMI 访问权限的 Windows 问题都有类似上面的代码片段。看起来 MMI 的采用率还没有那么高,而且要找到一个好的 MMI 示例并不容易。
我如何使用Microsoft.Management.Infrastructure来完成上面的代码?