我在我们的Windows 2003域中有一个打印服务器,上面有很多打印队列。 我们看到来自这台服务器的大量SNMP扫描,我们认为这是不必要的。 与打印服务器本身相关的一切都运行良好,但networking团队希望扫描停止。
我们可以看到在交换机上发生的扫描。 我已经安装了Wireshark,并可以看到扫描发生。 我可以看到程序正在通过像CurrPorts这样的东西来监听连接。
这个服务器多年来有过几个维护者。 有残余的司机和不需要在那里的东西。 不幸的是,我不能做任何过于激烈的事情来清理或干净的安装服务器,因为它是我们的networking依赖的主要打印服务器。 我们计划在未来一两年内更换它。
所以我的问题是…
如何确定Windows 2003服务器上的哪个程序/进程正在生成SNMP扫描?
我强烈怀疑后台打印程序服务(spoolsv.exe)正在这样做,因为它可能被configuration为这样做。 如果没有深入的交通描述(子网范围内的探测器或针对单个打印机设备的查询),很难说。 我的直觉告诉你,如果你在“Prnters and Faxes”对话框的“Server Properties”的“Ports”选项卡中检查任何“Standard TCP / IP Port”条目的“Configure Port”属性,你会发现“ SNMP状态已启用“被选中。
如果不这样做,使用“netstat -b”或“netstat -o”是要走的路,尽pipe使用SNMP作为套接字可能会很快closures,以至于难以捕获它们。
编辑:
这是脚本。
@echo off rem Query for all Standard TCP/IP Ports (skipping the first returned value, which rem is the "/Ports" key FOR /f "skip=1 usebackq delims=" %%i IN (`reg query "HKLM\System\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" ^| find "HKEY_LOCAL_MACHINE"`) DO ( rem For each port, disable SNMP REG ADD "%%i" /v "SNMP Enabled" /t REG_DWORD /d 0 /f >NUL 2>NUL )
netstat -b将显示所有连接和哪个进程生成该连接。 最有可能的是打印机pipe理软件(基于家庭或企业)不断地试图查询打印机以保持它们的状态,碳粉水平等。
Microsoftnetworking监视器3.3使您能够按进程/进程ID筛选stream量。
你也可以使用TCPView:
http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx
打印服务器可能安装了HP JetAdmin或WebJetAdmin。 这对于正常操作不是必需的。
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c01718860