iT邦幫忙

0

cmd.exe權限的問題;手動輸入netstat -nb與程式執行netstat -nb 結果不同

  • 分享至 

  • xImage

請教各位先進,我要寫個程式不時監控有哪些應用程式開啟那些TCPPort,中途碰到問題了。
我有一個ABC.bat檔 內容如下
netstat -nb > c:\temp\Log.txt
用滑鼠點兩下執行後Log.txt內容如下

使用中連線

協定 本機位址 外部位址 狀態
TCP 192.168.1.20:50841 52.139.250.253:443 ESTABLISHED
WpnService
[svchost.exe]
TCP 192.168.1.20:51251 117.18.237.29:80 ESTABLISHED
[SearchUI.exe]
TCP 192.168.1.20:51383 23.211.228.12:443 CLOSE_WAIT
[Video.UI.exe]
TCP 192.168.1.20:51719 119.161.10.12:443 ESTABLISHED
[chrome.exe]
TCP 192.168.1.20:51865 103.132.192.30:443 TIME_WAIT
TCP 192.168.1.20:51958 54.238.154.118:443 ESTABLISHED
[chrome.exe]
TCP 192.168.1.20:51965 35.190.28.87:443 ESTABLISHED
[chrome.exe]

當我用Delphi寫了個程式去呼叫ABC.bat執行時Log.txt內容卻是如下

使用中連線

協定 本機位址 外部位址 狀態
TCP 192.168.1.20:50841 52.139.250.253:443 ESTABLISHED
WpnService
[系統]
TCP 192.168.1.20:51251 117.18.237.29:80 ESTABLISHED
[系統]
TCP 192.168.1.20:51383 23.211.228.12:443 CLOSE_WAIT
[系統]
TCP 192.168.1.20:51719 119.161.10.12:443 ESTABLISHED
[系統]
TCP 192.168.1.20:51865 103.132.192.30:443 ESTABLISHED
[系統]
TCP 192.168.1.20:51940 210.203.8.223:443 ESTABLISHED
[系統]

問題出現了:中括號中的應用程式被換成了[系統]兩個字,Delphi的ap用以系統管理者執行也無法解決,
我懷疑是作業系統上權限的問題,請教有方法解決嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
nwm310
iT邦新手 3 級 ‧ 2021-02-16 12:28:29
最佳解答

沒有解決方法

下面是替代方案,存成bat

@echo off
for /f "skip=4 tokens=1-5" %%a in ('netstat -no') do (
    for /f "skip=3" %%j in ('tasklist /fi "pid eq %%e"') do echo %%b %%c %%j
)

pause
凱傑 iT邦新手 5 級 ‧ 2021-02-17 14:59:24 檢舉

雖然不知道原先的批次檔用滑數點跟用程式去呼叫執行該批次檔結果不同的原因在哪裡,但是前輩提供的方式一樣可以達到相同效果。非常感謝您的解答。

我要發表回答

立即登入回答