.net 检查远程会话
我想创建一个应用程序,用于检查并通知服务器上是否存在远程会话。我不知道像Bomgar、gotomeeting、GoToAsist等远程访问产品是否使用终端服务 它看起来像.net 检查远程会话,.net,powershell,network-programming,remote-access,windows-server-2012,.net,Powershell,Network Programming,Remote Access,Windows Server 2012,我想创建一个应用程序,用于检查并通知服务器上是否存在远程会话。我不知道像Bomgar、gotomeeting、GoToAsist等远程访问产品是否使用终端服务 它看起来像GetSystemMetrics'SM\u REMOTECONTROL和SM\u REMOTESESSION仅指通过Windows终端服务连接的远程会话 我刚刚看过这个,但它指的是PowerShell会话 所以,我的一般问题是什么.NETAPI家族负责创建、配置和检测远程访问 发布后编辑: 我刚刚在Microsoft TechN
GetSystemMetrics'
SM\u REMOTECONTROL
和SM\u REMOTESESSION
仅指通过Windows终端服务连接的远程会话
我刚刚看过这个,但它指的是PowerShell会话
所以,我的一般问题是什么.NETAPI家族负责创建、配置和检测远程访问
发布后编辑:
我刚刚在Microsoft TechNet中查看了另一个,似乎我需要获得一个进程列表,并找出
rdpinit.exe
和rdpshell.exe
是否在每个进程的进程列表中,但这是否包括一些著名的远程访问产品,是否有API来执行此操作?如何使用netapi32.dll
中的NetSessionEnum
函数?英格兰银行Prox有一篇关于它的文章:
已经有预先编写的PowerShell脚本可以p/invoke它,但是如果您想自己使用,这里是p/invoke.net作为签名:
作为补充说明,MS在几个月前发布了一篇博客文章,其中包含一个脚本,详细说明了对注册表的ACL修改,以实际阻止此操作,因为它允许对Windows计算机进行非管理员远程会话枚举。“这会覆盖所有远程访问产品吗?”-我不明白你怎么能测试你不知道存在的东西的存在。@Bill_Stewart说得对。我编辑了这篇文章。你不能利用
netstat-ano
解析外部地址,然后反转进程名的PID吗?其中.net程序集是NetSessionEnum?无。。。这就是为什么您必须使用平台调用服务(p/invoke)来访问底层的Windows API。NetSessionEnum函数驻留在System32\netapi32.dll中我链接的Boe Prox(他非常棒)的博客文章中有一个他编写的脚本,您可以参考或使用。网上也有其他人。