![](/img/trans.png)
[英]Running Powershell script causes 'Memory corruption' or 'Cannot Read or Write'
[英]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。
這些是我的先決條件:
有任何想法嗎?
創建一個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.