2

您好,在 power shell 中有一个包含 21 行代码的文件。我需要一种使用 c# 中的按钮运行此文件的方法。我在 Visual Studio 2010 中使用 c#。如果有办法实现,请告诉我。

// Powershell
$Proc = Get-Process | Sort-Object CPU -Descending
$cores = Get-WmiObject Win32_processor
$memory = Get-WmiObject Win32_OperatingSystem
$Total = 10
$num = 1

Clear-Content c:\scripts\prueba.txt

foreach ($objItm in $Proc) {
If ($num -gt $Total) {
    break #break the loop
}

[string] $strID=[System.Convert]::ToString($objItm.ID)
[string] $strProcessName=[System.Convert]::ToString($objItm.ProcessName)
[string] $strCPU=[System.Convert]::ToString($objItm.CPU)
[string] $strNUM=[System.Convert]::ToString($num)

$info=$strNUM+"-"+$strID+"-"+$strProcessName+"-"+$strCPU

$num += 1

$info|Add-Content c://scripts/prueba.txt

}
//Code c#
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); 
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open(); RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline(); 
pipeline.Commands.Add(scriptFile)
Execute PowerShell script results = pipeline.Invoke();

我需要例如按下一个按钮并使脚本发生

4

2 回答 2

0

一些对我有用的技巧。我的应用程序已经在运行

  1. 以管理员权限运行 Visual Studio,以避免 Hkey_Local 出现错误...

  2. 在 power shell 中运行此 get-executionpolicy 以查看策略并设置 unregistered 和 set-executionpolicy unregistered。这避免了操作系统的任何限制。

并在应用程序上方编写代码。准备好测试!!!

于 2013-07-25T21:45:02.547 回答
0

您可以使用Ingo KarsteinPS2EXE

这将创建具有自己的 powershell 主机和嵌入脚本的 ac# 可执行文件。

我有一个 ac# 项目,它采用 PS2EXE 中的 c# 代码,增加了读取加密的 powershell 脚本内容、解密并运行它的能力。

于 2013-07-23T07:58:12.670 回答