Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Powershell Cmdlet调用不一致_C#_Windows_Powershell_Windows Services - Fatal编程技术网

C# Powershell Cmdlet调用不一致

C# Powershell Cmdlet调用不一致,c#,windows,powershell,windows-services,C#,Windows,Powershell,Windows Services,我正在尝试从Windows服务(.NET Framework 4.7)中的PowerShell实例调用特定cmdlet“Get-VpnConnection” 我已经能够在命令行项目(也是.NET Framework 4.7)中成功调用此cmdlet,并且能够从此服务中调用其他cmdlet(例如“Get Date”)。我已为包安装程序(LocalSystem)选择了最高的帐户权限 以下是我尝试过的内容的摘录: 使用(PowerShell ps=PowerShell.Create()) { ps.A

我正在尝试从Windows服务(.NET Framework 4.7)中的PowerShell实例调用特定cmdlet“Get-VpnConnection”

我已经能够在命令行项目(也是.NET Framework 4.7)中成功调用此cmdlet,并且能够从此服务中调用其他cmdlet(例如“Get Date”)。我已为包安装程序(LocalSystem)选择了最高的帐户权限

以下是我尝试过的内容的摘录:

使用(PowerShell ps=PowerShell.Create())
{
ps.AddCommand(“获取VPN连接”);
收集结果=ps.Invoke();
WriteToFile(results.Count.ToString());
}
当我在服务中运行此操作时,WriteToFile(我创建的一个方法,用于写入程序基本目录中的日志文本文件)将向日志写入“0”,而对于“Get Date”,它将写入“1”。当我在命令行项目的主功能中运行此命令时,我得到了预期的“1”。不会引发异常,也不会有PowerShell流(错误或详细)包含任何内容。这就好像cmdlet没有被识别为有效,因为向AddCommand提供一个乱七八糟的参数将产生相同的结果


谢谢您的时间。

获取vpn连接
枚举每个用户的vpn连接-该服务是否以作为控制台应用程序的同一用户帐户运行?啊,我不这么认为!我将软件包安装帐户更改为“用户”,并在安装时手动输入凭据,之后一切正常!你能不能把你的评论作为一个问题发表,这样我就可以接受它作为答案?此外,除了Microsoft网站上的文档外,您是否知道有其他更深入的PowerShell文档来源?谢谢大家!
Get-VpnConnection
枚举每个用户的vpn连接-该服务是否以作为控制台应用程序的同一用户帐户运行?啊,我不这么认为!我将软件包安装帐户更改为“用户”,并在安装时手动输入凭据,之后一切正常!你能不能把你的评论作为一个问题发表,这样我就可以接受它作为答案?此外,除了Microsoft网站上的文档外,您是否知道有其他更深入的PowerShell文档来源?非常感谢。