【发布时间】:2017-04-28 21:16:14
【问题描述】:
我正在尝试从 c# 代码调用 powershell 命令,并且需要作为参数字节数组传递,但它转换为错误的格式。 C#代码:
var command = new Command("Set-UserPhoto");
command.Parameters.Add("Identity", login);
command.Parameters.Add("Confirm", false);
command.Parameters.Add("PictureData", pictureData); //byte array
其实是powershell:
Set-UserPhoto -Identity:'hennadiy.lebedyev@itera.no' -Confirm:$False -PictureData:'255','216','255','224',...,'0','16'
需要powershell:
Set-UserPhoto -Identity:'hennadiy.lebedyev@itera.no' -Confirm:$False -PictureData:(255,216,255,224,...,0,16)
使用函数 AddScript powershell 无法运行。
【问题讨论】:
-
您不会使用实际的 powershell 命令来执行此操作。您将加载一个文件,将其通过管道传递给命令并使用管道对象作为参数。事实上,
Set-UserPhoto与流而不是字节缓冲区一样工作 -
可能与您的问题正交,但您为什么使用 C# 调用 powershell?你不能直接调用你的脚本使用的任何 API,绕过所有的 powershell 限制吗?
标签: c# arrays powershell