SNMP is a common and most used network protocol for monitoring SNMP-enabled network hosts; including Windows and Windows Servers. You can use it for monitoring different metrics, such as CPU load, RAM, Disk, system uptime, and much more.
It acts as a Windows service and it is prone to different problems. If it doesn’t work, you will not be able to use it for monitoring the performance of your Windows machines. The problem can occur on any Windows and Windows Server version or edition. Why does the problem occur?
For writing this article, I run my workloads on powerful mini PC - Intel NUC powered with the CPU i7 the latest generation, 64 GB RAM DDR4, 256 M.2 SSD. Intel® NUC Mini PCs are fully complete and ready to work out of the box. You can learn more here Intel® NUC Products.
There are different reasons for that. In this article, I’ll cover common issues you might see and potential solutions to fix them.
And Yes…I’d love to hear your feedback. Please let me know if any, and what solution helped you to solve SNMP problems on your Windows. You can do it by adding your comment at the end of this article.
#1 Test SNMP connectivity
SNMP doesn’t work! Well, we know that, but it sounds generic. Firstly, we need to identify where is the root cause of the problem. Is there a problem with the destination Windows machine, network monitoring solution (NMS), or communication between Windows and NMS?
You can verify if the SNMP service is running using free SNMP Tester tools. The SNMP Tester tool can be run on the source (NMS) or destination machine (Windows). I’ll do it on the destination Windows machine which doesn’t respond to SNMP queries. You can do it on your NMS machine, as well. Based on the results we get, we can make some conclusions.
What tool should you use? I advocate for Paessler SNMP Tester.
- Download Paessler SNMP Tester from this LINK.
- Extract it, run Setup.exe to install it.
- Run the Paessler SNMP Tester.
- Under 1. Set SNMP Tester add the IP/Port, choose SNMP Version and Community. Under 2. Select Request Type select Read Device Uptime.
- Under 3. Run Test click Start. In the case below, you can see there is no response from Windows. Considering I use the correct paraments, my SNMP doesn’t work.
If you run SNMP Tester on the destination Windows machine, and it doesn’t respond to SNMP: SNMP is not enabled. Please check #2.
If you run SNMP Tester on the destination Windows machine, and it responds to SNMP but doesn’t respond to SNMP from NMS: you need to check if SNMP settings are matched with your NMS. Please check #3 and #4.
#2 Check SNMP service
SNMP service is not enabled by default. Regardless you are running Windows or Windows Server, you need to enable it. If you are unsure, you need to check the SNMP services status using the Services tool or PowerShell.
In Windows and Windows Server with Desktop Experience (GUI), you can check the SNMP status using Services.msc. Services is a tool in the Windows operating system to get a list of all the services on the computer. msc stands for the management console.
In order to do it, you need to open the Services tool and navigate to SNMP Service.
1. Hold Windows logo + R
2. Type services.msc and press Enter
Navigate to SNMP Service and check if it is running. If SNMP service is available, but not running, change the startup type and run it by clicking on Properties > General > Startup type > Start.
You don’t see SNMP service? That means it is disabled, and you need to enable it. You can check the details on how to do it on different operating systems in the following articles:
- How to install deprecated SNMP in Windows 10 1803 and onwards
- Can you still monitor your Windows 11 with SNMP
- Install and Configure SNMP in Windows Server 2019
- Can you still monitor your Windows Server 2022 with SNMP
What if you are running Windows Server Core or Hyper-V Server Core? In that case, you can check the status using PowerShell by executing the following command:
Get-WindowsFeature SNMP*
I’ve got you covered with the complete procedure in these two articles:
SNMP service is enabled, but I still can’t monitor target Windows machines using SNMP. Well, check the next step(s).
#3 Check SNMP settings
It is not only enough to enable SNMP on your Windows, you also need to configure it. It could happen that settings are not matched, and Windows and NMS can’t exchange SNMP messages. It could also happen that someone intentionally and accidentally made some changes. So, it always makes sense to check if the settings are matched or not.
There are four important parameters you need to match. It is an SNMP version, community string, port (explained in #4), and SNMP access list.
What SNMP versions are available? Windows only supports v1 and v2c. You need to check if v1 or v2c are configured within your NMS. If in any case, you use v3 in your NMS; Windows will not be able to respond to it.
What is the community string? A community string is some kind of key that is shared between NMS and Windows machines. The default one is public. You can keep the default one or change it (recommended).
What is the default port? SNMP uses UDP ports 161 and 162. For more information please refer to #4.
What is an SNMP access list? It is a list of IP addresses that are allowed to send SNMP queries to target Windows machines. This setting can be only configured on Windows machines.
Both, the community string and SNMP access list can be configured within the SNMP service itself. In order to do it, you need to open the Services tool and navigate to SNMP Service.
1. Hold Windows logo + R
2. Type services.msc and press Enter
3. Right click on SNMP Service and click Properties
4. Click on Security tab
Check the community string and match it with the NMS. You can add, edit or remove it.
The second option you need to configure is the SNMP access list. There are two options available, Accept SNMP packets from any hosts or Accept SNMP Packets from these hosts. If you select Accept SNMP packets from any hosts or Accept SNMP Packets from these hosts, you also need to add the IP address of your NMS. In my case below, the community string is prtgnetworkmonitor and my Windows machines only accept SNMP queries from 192.168.88.21 which is PRTG Network Monitor.
Navigate to your NMS, in my case PRTG Network Monitor and verify if the SNMP version and community string are matched. In my case, they are.
I know there is one thing missing, a port. Please refer to the next step.
#4 Check SNMP port(s)
SNMP uses the UDP port 161 for general SNMP messages. It uses UDP port 162 for SNMP Traps. These ports (if not changed on the Windows), must be matched with the port on your NMS.
If you are unsure what SNMP post is used, you can check it by navigating to your Windows machine and opening %systemroot%\System32\Drivers\Etc. Open file services with a text editor (e.g. Notepad++) and navigate to SNMP.
#5 Check firewall rules
This is not really a common situation, but it might be the case in certain situations. No harm to look at it. Windows provides you with a native firewall that can control inbound and outbound traffic. You can open Windows Firewall Advanced Settings and check if there are any rules blocking SNMP. The newest version of Windows and Windows Server, it is called Windows Defender Firewall with Advanced Security.
Once you open it, on the left side of the device tree, you can find Inbound and Outbound rules. Go through them and see if there are any rules that are blocking SNMP.
In my case, Windows 10 has the rule to block SNMP. What can I do in that case? I can disable the rule, modify it or delete it.
What can you do in your case? Please advise your IT department if you are allowed to modify it. In centralized environments dependent on the Active Directory, you can perform this change on hundreds or thousands of Windows machines by running a single group policy.
#6 SNMP stopped working after Windows Update
Well, this might happen with any Windows features. Windows Update is a must to do, but sometimes it just breaks things. We as IT professionals need to have a mechanism for how to mitigate or minimize potential problems.
If you noticed that SNMP stopped working after Windows Update, you can try to revert the update to the previous version (if possible). If you can’t do it, search for potential fixes on the Internet.
#7 Repair your Windows
Malware infected your Windows and SNMP files. You tried all of the potential solutions, but they didn’t work.
You can try to repair system files by running the sfc /scannow. The sfc /scannow command will scan all protected system files, and replace corrupted files with a cached copy that is located in a compressed folder at %WinDir%\System32\dllcache.
Open PowerShell or Command Prompt as Administrator and run the following command.
sfc /scannow
#8 Check your NMS
If SNMP works fine on your Windows machine, but NMS has some difficulties sending SNMP queries, you should check with the vendors if there are any known problems with SNMP. Open a ticket and read the release notes.
#9 Wireshark knows where the packet goes
Considering your Windows and NMS are working properly and your SNMP packets are somewhere lost; try to analyze your network traffic using Wireshark. Wireshark is a super powerful tool for that kind of job.
And Yes…I’d love to hear your feedback. Please let me know if any, and what solution helped you to solve SNMP problems on your Windows. You can do it by adding your comment at the end of this article.
If you find this article helpful, you can share it with your network by using the social media buttons below.
Fabrício Aguirre
April 3, 2023 at 15:46
Still not working. All configurations Ok, nagios gets information from all other servers, SNMP configuration same as any other.
Jasmin Kahriman
April 3, 2023 at 23:18
Hey Fabricio – To clarify, are you experiencing an issue on only one Windows host while the SNMP works fine on all other hosts? If that is the case, could you please execute ‘netstat -aon’ in the CMD and check if port 161 is open (unless you have changed it)?
Steinar Grande
July 19, 2024 at 15:56
Window server, still do not show any IP adresses with port 161 & 162 when running netstat
Jasmin Kahriman
September 24, 2024 at 23:18
Hi Steinar – I suggest trying with the Wireshark.