首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中的Powershell命令不能工作

C#中的Powershell命令不能工作
EN

Stack Overflow用户
提问于 2017-11-07 14:12:07
回答 1查看 172关注 0票数 1

我有一个运行在Windows10上的C# WPF应用程序,我从该应用程序中调用Powershell命令。通常情况下,代码成功运行,一切正常,但现在没有了。

Powershell命令运行时没有任何错误,但什么也不做。我没有更改与这些命令相关的任何代码。

我调用的方法如下:

代码语言:javascript
复制
using (var ps = PowerShell.Create()) //Mounts iso image
{
       ps.AddScript("Mount-DiskImage");
       ps.AddParameter("ImagePath", IMG);
       string outp = "";
       Collection<PSObject> PSOutput = ps.Invoke();
       using (StringWriter sw = new StringWriter())
       {
           foreach (PSObject invoke in PSOutput)
               sw.WriteLine(invoke.ToString());
           outp = sw.ToString();
       }
       if (ps.Streams.Error.Count > 0)
       {
           outp += Environment.NewLine + string.Format("{0} errors: ", ps.Streams.Error.Count);
           foreach (ErrorRecord err in ps.Streams.Error)
                    outp += Environment.NewLine + err.ToString();
           MessageBox.Show(outp);
       }
 }

编辑:更改后的代码,如果引发错误,则返回错误。测试时没有显示错误。

编辑2:添加额外的错误检查。这会返回一个错误,但我不知道它是什么。

编辑3:修改代码以查看错误输出,它说我未能提供ImagePath参数(而我没有)。在将IMG参数传递给方法之前,我检查了它,它确实是一个完整的路径。这里怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 23:03:43

嗯,解决了我自己的问题(至少现在是这样)。首先,当我最初尝试不同的东西来修复它时,我将行ps.AddCommand()更改为ps.AddScript(),并在它不起作用时忘记将它更改回原来的位置。显然,ps.AddCommand()是调用此场景的正确方法。这本身并没有解决我的问题。这里我找到了一个类似的问题的解决方案,所以我在我的身上试了一下,它成功了。

总之,导航到注册表中的HKLM\System\CurrentControlSet\Services\FsDepends。单击DWORD值Start并将其从3更改为0。重新启动以应用。显然,这与该特定Windows服务中的时间混乱有关。我不确定这是否是一个永久的解决方案,但我的所有代码现在看起来都井井有条,所以我们拭目以待。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47160066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档