从c#应用程序运行powershell

时间:2013-07-22 23:56:55

标签: c# powershell

你好,有一个文件,在电源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();

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

2 个答案:

答案 0 :(得分:0)

您可以PS2EXE

使用Ingo Karstein

这会创建一个带有自己的powershell主机的c#可执行文件,并嵌入您的脚本。

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

答案 1 :(得分:0)

一些适合我的提示。我的申请已经在运作

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

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

  3. 使用上面的代码编写应用程序工作。准备好并测试!!!