首页 新闻 赞助 找找看

C#调用PowerShell的问题

0
悬赏园豆:15 [已解决问题] 解决于 2020-11-30 13:41

这是一个VisualSVN 创建用户的命令,使用PowerShell的操作是:
1.输入命令行 $password = Read-Host -AsSecureString
2.输入 密码
3.输入命令行 Set-SvnLocalUser -Name jack -Password $password

上面这段操作,用C#应该如何实现?

阿哈太阳的主页 阿哈太阳 | 初学一级 | 园豆:23
提问于:2020-10-14 14:57

是用 C# 执行 PowerShell 命令吗?

dudu 3年前

@dudu: 是的

阿哈太阳 3年前
< >
分享
最佳答案
0

试试

using(PowerShell ps = PowerShell.Create())
{
    // ...
}

参考:

收获园豆:10
dudu | 高人七级 |园豆:31075 | 2020-10-14 15:32

我尝试过,最终在 ps.Invoke() 之后总是出现下面的错误:
提示用户的命令失败,因为主机程序或命令类型不支持用户交互。请尝试支持用户交互的主机程序(如 Windows PowerShell 控制台或 Windows PowerShell ISE),然后从不支持用户交互的命令类型中删除与提示有关的命令,如 Windows PowerShell 工作流。

阿哈太阳 | 园豆:23 (初学一级) | 2020-10-14 15:35

using (Runspace runspace = RunspaceFactory.CreateRunspace())
{
runspace.Open();

            PowerShell ps = PowerShell.Create();
            ps.Runspace = runspace;

            var r1 = ps.AddScript("$password = Read-Host -AsSecureString").AddArgument( "123qwe");
            ps.Invoke();
            //打印错误信息
            PrintResult(r1.Streams);

            var r2 = ps.AddScript("New-SvnLocalUser -Name jack1 -Password $password");
            PrintResult(r2.Streams);

            Console.ReadLine();
        }
阿哈太阳 | 园豆:23 (初学一级) | 2020-10-14 15:36
其他回答(1)
0

https://www.cnblogs.com/gaocong/p/6878470.html,

 

可以参考我写的博文

收获园豆:5
小小高 | 园豆:1095 (小虾三级) | 2020-10-19 16:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册