Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
Globalprotect VPN批处理文件或C#代码_C#_Windows_Visual Studio_Batch File_Vpn - Fatal编程技术网

Globalprotect VPN批处理文件或C#代码

Globalprotect VPN批处理文件或C#代码,c#,windows,visual-studio,batch-file,vpn,C#,Windows,Visual Studio,Batch File,Vpn,您好,我正在尝试使用GlobalProtect VPN客户端连接到VPN网络。我可以使用UI来完成,但我希望这是自动化的。在另一个使用Sonicwall Netextender的项目中,我创建了一个批处理文件,我从C#代码调用该文件,这样我就可以通过调用批处理文件连接到VPN,执行一些操作,并使用另一个批处理文件断开连接。我正试图用Globalprotect找到一种类似的方法来实现它。我在Netextender中使用的命令行参数似乎与PanGPA.exe不兼容。你知道我该怎么做吗?到目前为止,我

您好,我正在尝试使用GlobalProtect VPN客户端连接到VPN网络。我可以使用UI来完成,但我希望这是自动化的。在另一个使用Sonicwall Netextender的项目中,我创建了一个批处理文件,我从C#代码调用该文件,这样我就可以通过调用批处理文件连接到VPN,执行一些操作,并使用另一个批处理文件断开连接。我正试图用Globalprotect找到一种类似的方法来实现它。我在Netextender中使用的命令行参数似乎与PanGPA.exe不兼容。你知道我该怎么做吗?到目前为止,我在批处理文件方面没有任何运气。 netextender批处理文件是:

cd c:\Program Files (x86)\SonicWALL\SSL-VPN\NetExtender\
NECLI connect -s 122.254.213.256 -d DNAME -u UNAME -p PASSWORD

globalprotect VPN客户端不可能实现这种自动化更新:只需使用OpenConnect v8.00或更新版本。globalprotect支持已纳入“官方”OpenConnect版本。所以全科医生支持就行了™ 与最近的官方建设

---

您不能使用官方GP客户端执行此操作。然而,我最近扩展了神奇的开源VPN客户端,以支持泛GlobalProtect VPN,包括SSL-VPN和IPsec/ESP模式。它的行为就像一个本地客户端,您可以从命令行以完全自动化的方式运行它

这是一个很好的例子,但我已经在实际工作中使用它了,它对我来说非常有效让其他人测试它会很棒,我欢迎您的反馈

您需要从此存储库中构建
globalprotect
分支:

。。。然后像这样运行它来测试它(如果您的VPN不使用客户端证书,您可以省略
--certificate
部分):

(我还没有在Windows下测试这个版本,但是官方的OpenConnect版本都是Windows兼容的,而且这个版本没有什么特别之处。)

一个有点“黑客”的解决方法,通过虚拟地点击“连接”按钮为我在Windows上解决了这个问题。这可以使用NirSoft的“NirCmd”命令行工具(1)通过以下命令实现:

NIRCMD win child class "#32770" sendmsg id 1160 0xF5 0 0
实际上,这会向按钮发送一条BM#U CLICK窗口消息,其中“#32770”是其对话框窗口的类名,“1160”(十进制)是“Connect”按钮的ItemID,根据(2),0xF5是BM#U CLICK消息的数值Win32 API常量。这将模拟正常的用户操作,就像他/她将手动单击按钮一样。再次单击按钮(手动或通过调用相同的命令)会导致已建立连接断开

在我的例子中,只配置了一个连接-如果列表中有多个连接,则可能会发生不同的情况,因为用户可能必须决定使用哪个连接

请小心,因为在另一台计算机或GlobalProtect代理的版本/内部版本上,类名和ItemID值可能不同。当我使用NirSoft的“WinExplorer”工具(3)捕获按钮控件并查找其详细信息时,这些值对我起到了作用。至少,类名和ItemID看起来都是持久的,这意味着程序崩溃、终止或重新启动不会导致任何更改

参考文献:
(1)
(2)

(3)

您是否尝试过:
cd“c:\Program Files(x86)\SonicWALL\SSL-VPN\NetExtender\”
?正如我所说的“我正在尝试使用Globalprotect找到一种类似的方法来实现它”。Netextender不是问题。我如何在windows上构建此repo?@kizilsu,我不使用windows,尤其是不用于软件开发。最终,它应该被整合到Windows GUI中(请参阅)。
NIRCMD win child class "#32770" sendmsg id 1160 0xF5 0 0