C# 从.NET执行命令时出错:提供的内核信息版本无效

C# 从.NET执行命令时出错:提供的内核信息版本无效,c#,.net,powershell,cmd,C#,.net,Powershell,Cmd,我正在尝试从.NET进程内部执行命令。该命令在Powershell或由用于.NET进程的同一用户执行的常规命令提示符中运行良好 我正在尝试使用以下命令更新Windows server 2016上的RRAS SSTP证书: netsh ras set sstp-ssl-cert name=bla.domain.foo 我得到的错误如下: 提供的内核信息版本无效 这是我用来在一个简单的.NET控制台应用程序中执行的代码。为简洁起见,省略了输出逻辑 using (var powerShellInst

我正在尝试从.NET进程内部执行命令。该命令在Powershell或由用于.NET进程的同一用户执行的常规命令提示符中运行良好

我正在尝试使用以下命令更新Windows server 2016上的RRAS SSTP证书:

netsh ras set sstp-ssl-cert name=bla.domain.foo
我得到的错误如下: 提供的内核信息版本无效

这是我用来在一个简单的.NET控制台应用程序中执行的代码。为简洁起见,省略了输出逻辑

using (var powerShellInstance = PowerShell.Create())
{
    powerShellInstance.AddScript(command);
    powerShellInstance.Invoke();
}
我使用的是.NETFramework4.6.1,我曾尝试添加一个清单来增加所需的执行权限,但无论是添加清单还是以管理员身份手动运行都不会改变任何内容


该应用程序由一个计划任务执行,如果我手动添加所需的脚本作为直接使用cmd.exe执行的步骤,它就像一个符咒。但是这不是很干净,需要我在创建任务时知道证书名称。我有无数种方法可以解决这个问题,但就我的一生而言,我不明白为什么它不能在.NET上运行,而我需要的所有其他命令都可以正常运行。

因此,从本质上讲,这并不是一件真正时髦的事情。该错误消息更一般,而不是特定于.Net用例

此错误消息不是您在执行的操作所独有的,尤其是最近在Win10上。自1703发布以来,就已经报告了此错误,即使是在文件系统上执行操作(如WDS捕获、文件夹创建等)时也是如此

有几个原因是假设的,比如权限等等,但是所有这些都必须想出一个解决方法(权限修复等),因为您已经指出您有一百万种方法来解决您的用例


但要找到潜在的根本原因,您需要更深入地查看其他Windows事件日志信息、应用程序、安全性、系统和PowerShell日志,这些都是您在执行.Net工作时记录的。

是的,我发现的错误仅限于WDS日志。不幸的是,所有事件日志都保持为空,我从powershell输出中得到的唯一结果就是我发布的消息。错误流仍然为空。。。如果你还有其他的想法,我愿意接受建议。事件日志中没有包含此错误的内容是非常奇怪的。我会提高审计级别,然后再试一次。为了让我更进一步地判断,我必须旋转一些东西才能看到更多的东西。现在我的VS2K15坏了,不确定是什么造成的,现在我必须手动删除所有它。啊!注册黑客,重新安装VS2K17,然后返回项目。如果我有什么想法,我会发布更新。