我有一个运行在Windows10上的C# WPF应用程序,我从该应用程序中调用Powershell命令。通常情况下,代码成功运行,一切正常,但现在没有了。
Powershell命令运行时没有任何错误,但什么也不做。我没有更改与这些命令相关的任何代码。
我调用的方法如下:
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参数传递给方法之前,我检查了它,它确实是一个完整的路径。这里怎么了?
发布于 2017-11-07 23:03:43
嗯,解决了我自己的问题(至少现在是这样)。首先,当我最初尝试不同的东西来修复它时,我将行ps.AddCommand()更改为ps.AddScript(),并在它不起作用时忘记将它更改回原来的位置。显然,ps.AddCommand()是调用此场景的正确方法。这本身并没有解决我的问题。这里我找到了一个类似的问题的解决方案,所以我在我的身上试了一下,它成功了。
总之,导航到注册表中的HKLM\System\CurrentControlSet\Services\FsDepends。单击DWORD值Start并将其从3更改为0。重新启动以应用。显然,这与该特定Windows服务中的时间混乱有关。我不确定这是否是一个永久的解决方案,但我的所有代码现在看起来都井井有条,所以我们拭目以待。
https://stackoverflow.com/questions/47160066
复制相似问题