繁体   English   中英

在内存中运行powershell脚本

[英]Running a powershell script in memory

我正在寻找一种方法,使用系统中最新的PowerShell引擎在内存中运行C#中的powershell脚本。 目前我使用的是Microsoft Windows PowerShell引擎核心程序集(System.Management.Automation),它非常适用于使用powershell 2.0版引擎的powershell脚本。

我的目标是创建一个.NET 2.0或3.5程序集,它使用系统上最新的PowerShell引擎在内存中调用powershell脚本。 这可能是版本2或3。

这些是我的先决条件:

  • 我的程序集应该针对.NET 2.0或.NET 3.5
  • 始终使用最新版本的PowerShell引擎
  • 在内存中运行脚本(暂时将PS脚本存储在硬盘上是不行的)

有任何想法吗?

创建一个RAM磁盘并将脚本文件存储在那里。 或者,如果您根本不想存储任何脚本文件,则使用AddCommand()方法将单个命令添加到PowerShell对象。

您可以将脚本作为“嵌入式资源”嵌入到C#程序中,然后在运行时将其解压缩。 看看这个脚本行149-155如何做到这一点。 定位.NET 2.0到3.5非常简单,因为2.0,3.0和3.5都在.NET 2.0运行时运行 - 只针对.NET 2.0。

但是,如果您希望始终定位最新版本的PowerShell引擎,那将会更加棘手,因为PowerShell V3和V4的目标是.NET 4.0。 如果您的程序集始终以.NET 2.0(甚至3.5)为目标,那么您将无法在最新的PowerShell引擎中使用新功能,因为您必须在编译期间引用V3 System.Management.Automation.dll程序集并且它需要。 NET 4.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM