Enable SNMP on Windows Server

Setting up SNMP on Windows Server follows the same logic as on Linux, but the mechanics are different. There's no package to apt install and no snmpd.conf to edit — instead, SNMP ships as an optional Windows feature you turn on, and you configure its community strings and permitted hosts through the service's own properties. Once it's running, a Windows box answers the exact same standard OIDs a Linux host does, so any Net-SNMP client can query it and any external monitor can watch it. This guide covers how to enable SNMP on Windows Server, set a read-only community, lock it down, and confirm it responds.

Prerequisites

To enable SNMP on Windows, line up the following first:

  • A supported Windows Server edition where the SNMP Service optional feature is still available (it has been deprecated in favor of newer tooling on recent releases, but remains installable as a feature).
  • Administrator rights — installing a feature and editing a system service both require them.
  • A decision on your read-only community string (a long random value) and the OIDs you plan to expose — sketch that with the OID allowlist concepts.
  • A Net-SNMP client on another machine — snmpget, snmpwalk — to test from off-box. See the Net-SNMP toolkit.
  • Access to the Windows Firewall so you can permit the SNMP UDP port inbound.

The building blocks map cleanly onto the Linux setup — a service, a community, an allowlist of hosts, a firewall rule — even though the buttons and files are Windows-specific.

Step-by-step

The shape of the job is: add the feature, set the community and hosts, allow the firewall, restart, test. Because the precise UI wording shifts between Windows Server versions, treat the clicks below as the pattern rather than a pixel-perfect script.

  1. Add the SNMP Service feature. Through Server Manager, use Add Roles and Features and select SNMP Service under Features. (Administrators comfortable with PowerShell can install the same feature from an elevated prompt; the feature name may vary by release, so confirm it on your version rather than assuming.)
  2. Open the service properties. In the Services console (services.msc), find SNMP Service, right-click, and choose Properties. This is where Windows keeps what Linux would put in snmpd.conf.
  3. Set the read-only community. On the Security tab, add your community string with READ ONLY rights. Never leave a default like public in place.
  4. Restrict who can query. Still on the Security tab, choose Accept SNMP packets from these hosts and list the monitoring source's address — not any host. That's your host allowlist.
  5. Allow the port through Windows Firewall. Permit inbound UDP 161 (or your chosen custom port) from the monitoring source only.
  6. Restart the SNMP Service so the settings take effect, and set its startup type to Automatic so it survives a reboot.

That's the whole enable-SNMP-Windows path. A few things are worth calling out because they differ from Linux. First, community and host rules live in the service's Security tab, not a text file — the underlying settings are stored by the service rather than in an editable .conf. Second, Windows exposes the same standard MIBs: the Host Resources MIB (RFC 2790) still serves host uptime at 1.3.6.1.2.1.25.1.1.0, CPU load at 1.3.6.1.2.1.25.3.3.1.2, and storage usage at 1.3.6.1.2.1.25.2.3.1.6, while the IF-MIB (RFC 2863) serves interface counters. So although the setup is Windows-flavored, the data is portable — the sensor catalog applies unchanged. Because exact command syntax and feature names drift across Server releases, verify each on your specific version instead of copy-pasting blindly.

Configuration example

Windows doesn't have a snmpd.conf, so the "configuration" is the set of values you enter in the SNMP Service Security tab. Here's the effective read-only setup as a table:

SettingWhereValue
Community stringSecurity tab → Accepted community names<long-random-string>, rights = READ ONLY
Accepted hostsSecurity tab → Accept packets from these hostsMonitoring source IP only
Send authentication trapGeneral/Traps tabOff unless you collect traps
Firewall ruleWindows Firewall (inbound)Allow UDP 161 (or custom port) from the monitoring source
Startup typeServices console → SNMP ServiceAutomatic

Read that top to bottom and it mirrors a hardened Linux agent: a read-only community, a tight host allowlist, no traps you don't use, and a scoped firewall rule. The standard MIBs it will then serve are the same ones every SNMP agent publishes, so a Net-SNMP client sees a Windows host and a Linux host the same way. The conceptual counterpart on Linux — communities, views, and access rules in a config file — is covered in the snmpd.conf reference.

Windows Server SNMP Service properties open on the Security tab to enable SNMP on Windows with a read-only community

Verify it works

Test from a second machine, since that's the path a real monitor takes. From any Net-SNMP client, query host uptime on your Windows box:

snmpget -v2c -c <community> <windows-ip> 1.3.6.1.2.1.25.1.1.0

A returned TimeTicks value confirms the service is running, the community matches, and the firewall is letting SNMP through. Walk the processor table to see per-CPU load:

snmpwalk -v2c -c <community> <windows-ip> 1.3.6.1.2.1.25.3.3.1.2

If the query times out, work through it in order: is the SNMP Service actually started, is the community exact, is the querying host in the accepted hosts list, and is UDP 161 open inbound? Any one of those blocks a response. A timeout that survives all four points to a network path or firewall further upstream — the troubleshooting guide has the full sequence.

Security note

SNMP on Windows Server carries the same risks as anywhere, plus the reminder that v2c is not encrypted:

  • Never keep a default community. Use a long, random read-only string; treat it as a password. See secure the community string.
  • Lock the accepted-hosts list to your monitoring source rather than any host.
  • Scope the firewall rule to that same source and nothing wider.
  • Move off UDP 161 to a random port where practical to reduce scanner noise — see custom port.
  • Remember the wire is clear text under v1/v2c (RFC 1157 / RFC 1901); keep SNMP on a trusted segment or use encryption at the network layer.

The broader threat model lives in the security section.

Next: connect external monitoring

A Windows Server watching itself has the familiar problem — a crash, a blue screen, a hung service, and the local watcher goes down with the box it was supposed to report on. Monitoring from outside sidesteps that. An independent checker on another network keeps polling the agent and turns a silent, dead server into an alert. That's double durability: a second, independent source that catches what the host itself can no longer tell you.

ostr.io Monitoring is agentless from the monitoring side — it polls the standard OIDs your Windows agent already exposes, from outside your network, and fires real-time email and SMS alerts on downtime, slow responses, and resource spikes. With the service verified, add an SNMP endpoint in ostr.io.

Diagram of an external monitor polling a Windows Server SNMP agent over UDP and sending email and SMS alerts

Frequently asked questions

Does Windows Server include SNMP, or do I install it?

It's an optional feature, not on by default. You add the SNMP Service through Add Roles and Features (or the equivalent feature-install command for your release), then configure it in the Services console. Note that Microsoft has deprecated the SNMP Service on newer Server versions, though it usually remains installable as a feature.

Where do I set the community string on Windows — there's no snmpd.conf?

Correct, there's no config file to edit. Community strings and the accepted-hosts allowlist live on the Security tab of the SNMP Service's properties in the Services console. That tab is the Windows equivalent of the community, view, and access lines you'd write in snmpd.conf on Linux.

Can Linux tools query a Windows SNMP agent?

Yes. Windows serves the same standard MIBs — Host Resources MIB, IF-MIB — so any Net-SNMP client (snmpget, snmpwalk) queries it exactly as it would a Linux host. The OIDs are identical; only the setup differs.

Why does my Windows SNMP query time out?

Check four things in order: the SNMP Service is started, the community string matches exactly, the querying host is in the accept packets from these hosts list, and UDP 161 (or your custom port) is open inbound in Windows Firewall. Missing any one produces a timeout.

Conclusion

Enabling SNMP on Windows Server comes down to four moves: add the SNMP Service feature, set a read-only community and a tight accepted-hosts list on the Security tab, open the SNMP UDP port to your monitoring source, and restart the service. There's no snmpd.conf — Windows keeps those settings in the service properties — but the standard OIDs it serves are identical to Linux, so any Net-SNMP client can read it. Verify from a second machine, keep the community and host list locked down, then let an external monitor watch the box so a crash still reaches you.

Monitor it from outside the network

SNMP only tells you a box is healthy while something is still asking. ostr.io polls your endpoints externally and fires email + SMS alerts the moment a reading crosses your line — or the agent goes silent.