如何在同一台机器上自动化PowerShell或PowerShell Core

aurhwmvo  于 2023-06-23  发布在  Shell
关注(0)|答案(1)|浏览(163)

随着PowerShell Core的发布,应用程序在使用托管自动化库(system.management.automation)时如何选择调用哪个版本的PowerShell(PowerShell 5.x或PowerShell Core)?关于应该创建的运行空间的一些内容?或者是联系信息

py49o6xq

py49o6xq1#

以下是PowerShell SDK相关NuGet包的概述:改编自此处。
注意:System.Management.Automation不推荐直接使用。

  • 创建 * 托管PowerShell运行时的独立应用程序***,以便在进程中调用PowerShell命令,请执行以下操作:
  • 对于使用旧版Windows PowerShell运行时的**.NET Framework**(* 仅限Windows *)应用程序,请使用Microsoft.PowerShell.5.ReferenceAssemblies
  • 使用Microsoft.PowerShell.SDK(可能跨平台).NET Core / 5+。使用PowerShell (Core) v6+运行时的应用程序。
  • 要确定给定包版本必须至少与哪个特定的.NET(核心)运行时组合,请在链接页面上选择感兴趣的包版本,展开Dependencies部分,并查阅第一个条目;例如,对于软件包版本7.2.0,所需的最低.NET(核心)运行时为net6.0
  • 若要创建实现 * cmdlet * /的程序集,以构成模块的一部分 * 在PowerShell中使用*或创建 *PowerShell主机 *:
  • 使用PowerShellStandard.Library;它兼容 * Windows PowerShell和PowerShell(Core)v6+,但note
  • “[此]参考程序集不包含实际的实现,而是允许您仅使用存在于不同版本的PowerShell中的API。这意味着**您仍然需要在PowerShell运行时中运行。
    至于通过 remoting 定位特定版本/版本:
  • 参见this question and answer
  • 请注意,它从使用PowerShell * cmdlet * 而不是SDK的Angular 介绍了远程处理,尽管您也可以始终通过SDK调用cmdlet。

正如Lee Dailey在对该问题的评论中指出的那样,特定于版本的可执行文件名是:

  • powershell.exe -Windows PowerShell
  • pwsh.exe(Windows)/pwsh(类Unix平台)-PowerShell(Core)v6+

相关问题