calling powershell functions through c#(通过C#调用PowerShell函数)
本文介绍了通过C#调用PowerShell函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试通过C#代码调用PowerShell函数。
**#This is sample PowerShell function**
function Add-num {
param($int1,$int2)
Write-Host ($int1 + $int2)
}
**#This is my c# code**
class Program
{
static void Main(string[] args)
{
String file = @"E:powershellUntitled3.ps1";
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
using (PowerShell PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddScript(file);
PowerShellInstance.AddCommand("Add-num").AddParameters(new Dictionary<string, string>
{
{"int1","6" },
{"int2","7" }
});
// Collection<PSObject> PSOutput = PowerShellInstance.Invoke();
foreach (PSObject outputItem in PowerShellInstance.Invoke())
{
Console.WriteLine(outputItem.BaseObject);
}
runspace.Close();
}
}
}
错误:系统管理.Automation.dll中出现‘System.Management.Automation.CommandNotFoundException’类型的未处理异常
附加信息:术语‘Add-Num’未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证该路径是否正确,然后重试。当我执行此代码时抛出上述错误。但当我从PowerShell运行时,代码运行得很好。我已经检查了文件路径和文件名,一切正常,有人能帮我解决这个问题吗?错误指向Invoke。
推荐答案
我以前做过以下操作:
string command = @"C: emp.ps1";
var fileName = "powershell";
var args = $"-ExecutionPolicy unrestricted . '{command}'";
var process = CreateProcess(fileName, args);
process.Start();
这篇关于通过C#调用PowerShell函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:通过C#调用PowerShell函数
基础教程推荐
猜你喜欢
- SSE 浮点算术是否可重现? 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- rabbitmq 的 REST API 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01