簡體   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