gpt4 book ai didi

c# - 从 .NET Core 运行 PowerShell

转载 作者:IT王子 更新时间:2023-10-29 04:43:34 24 4
gpt4 key购买 nike

有没有办法从 .net-core 运行 PowerShell 脚本?

我正在尝试在新的 .net 核心“网站\api”中运行 PowerShell 脚本。据我所知,为了在 .net 上运行 PowerShell,我们需要添加

System.Management.Automation 命名空间。

这对于 .net core 是不可能的(或者我还没有找到合适的方式来添加它)。有几个 NuGet 包也旨在将此 DLL 添加到项目中,但它们也不与 .net 核心兼容。有没有办法在 .net 核心上执行此操作?以下是我试过的一些链接,但没有一个是特定于 .net 核心的:

http://www.powershellmagazine.com/2014/03/18/writing-a-powershell-module-in-c-part-1-the-basics/

Referencing system.management.automation.dll in Visual Studio

https://www.nuget.org/packages/System.Management.Automation/

最佳答案

看起来它在 .NET Core 2.0 和 PowerShell 6 Beta 3 中得到了很好的支持(尽管它在 Beta 1 和 2 中也得到了支持,但并不那么容易),这里是 Host PowerShell documentation in the GitHub repo 的链接

他们还提供了一个很好的示例应用程序,显示它与 .NET Core 2.0 和 PowerShell Core v6.0.0-beta.3 及更高版本一起运行:

https://github.com/PowerShell/PowerShell/tree/master/docs/host-powershell

为了将正确的包添加到我的 NuGet 包列表中,我确实需要添加 powershell-core 作为新的 NuGet 存储库位置:

https://powershell.myget.org/F/powershell-core/api/v3/index.json

然后我可以安装 NuGet 包:

install-package microsoft.powershell.sdk -version 6.0.0-rc
install-package microsoft.powershell.commands.diagnostics -version 6.0.0-rc
install-package microsoft.wsman.management -version 6.0.0-rc

所有这三个依赖项都是必需的,然后我可以在我的 asp.net 核心 MVC Web 应用程序中执行以下简单的 PowerShell 命令:

public class PowerShellHelper
{
public void Execute(string command)
{
using (var ps = PowerShell.Create())
{
var results = ps.AddScript(command).Invoke();
foreach (var result in results)
{
Debug.Write(result.ToString());
}
}
}
}

关于c# - 从 .NET Core 运行 PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39141914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com