2

我想創建一個應用程序來檢查並通知服務器上是否存在遠程會話。我不知道是否遠程訪問產品Bomgar,gotomeeting,gotoassist,和其他人使用終端服務或不。檢查遠程會話

看起來像GetSystemMetrics'SM_REMOTECONTROLSM_REMOTESESSION只引用通過Windows終端服務連接的遠程會話。

我剛纔看過post,但這是指PowerShell會話。

因此,我的一般問題是哪些.NET API家族處理創建,配置和檢測遠程訪問?

編輯自發布:

我剛纔看了一下在微軟的TechNet這個其他post,看來我需要得到的進程列表,如果rdpinit.exe發現和rdpshell.exe在每個進程「進程列表,但會涵蓋一些衆所周知的遠程訪問產品,並且是否有API來執行此操作?

+0

「將涵蓋所有遠程訪問產品」 - 我不明白你將如何測試你不知道的東西是否存在。 –

+0

@Bill_Stewart好點。我編輯了這篇文章。 – octopusgrabbus

+0

你不能利用'netstat -ano'解析外部地址,然後反轉進程名稱的PID? – TheIncorrigible1

回答

1

NetSessionEnum函數從netapi32.dll怎麼樣?京東方的Prox上有一個偉大的文章:https://learn-powershell.net/2016/08/07/viewing-net-sessions-using-powershell-and-pinvoke/

現在已經有預先寫好的PowerShell腳本的P/Invoke,但如果你想推出自己的,這裏的P/invoke.net的簽名:http://www.pinvoke.net/default.aspx/netapi32.NetSessionEnum

作爲一個便箋,MS發佈了一個腳本的博客文章,該腳本在幾個月前對註冊表進行了詳細的ACL修改,實際上阻止了它,因爲它允許Windows機器的非管理員遠程會話枚舉。

+0

其中.net程序集是NetSessionEnum? – octopusgrabbus

+0

無......這就是爲什麼您必須使用平臺調用服務(p/invoke)來訪問基礎Windows API。 NetSessionEnum函數駐留在System32 \ netapi32.dll中 – thepip3r

+0

由Boe Prox撰寫的博客文章(他很棒btw),我鏈接了一個他寫的腳本,可供您參考或使用。網絡上也有其他人。 – thepip3r