Windows 10 中“SNMP 服务”不可用吗?

Windows 10 中“SNMP 服务”不可用吗?

在几乎所有情况下,将 SMTP 服务添加到 Windows 操作系统似乎都非常简单:打开 Windows 功能界面,然后选中“简单网络管理协议”选项。重新启动后,应该会有一个名为“SNMP 服务”的新本地服务可用。

我在 Windows 10 Pro 64 位中按照这些步骤操作,但我发现找不到“SNMP 服务”。有一个“SNMP Trap”服务,但显然这不是我要找的。似乎 SNMP 代理设置(例如社区名称)只能在“SNMP 服务”的属性中修改。

在搜索过程中,我发现了一个用于安装 SNMP 服务的 Powershell 命令:

Install-WindowsFeature RSAT-SNMP

但是,结果是一条错误消息(即使以管理员身份运行):

Install-WindowsFeature : The target of the specified cmdlet cannot be a Windows client-based operating system.

“基于客户端的操作系统”一词表明 SNMP 服务仅适用于 Windows Server 操作系统,但 Windows 7/8 并非如此。所以我很好奇 Windows 10 是否也发生了变化。

答案1

你的问题实际上解决了两个问题:

  1. 您无法使用 Windows Server 本机 PowerShell 命令,它们不适用于除 Windows Server 架构之外的任何架构。运行gcm -module DISM以获取您的计算机支持的命令列表。
  2. SNMP 服务确实存在于 Windows 10 中:Windows 10 中的 SNMP

答案2

Windows 10 Build 1809 确实存在一个错误,它不显示 SNMP 服务,这是该问题的修复方法:

  1. 使用管理员凭据打开 Powershell
  2. 发出以下命令
  3. Get-WindowsCapability -Online -Name“SNMP*”-->将显示不存在
  4. Add-WindowsCapability -Online -Name“SNMP.Client~~~~0.0.1.0”
  5. 获取 WindowsCapability -Online -名称“SNMP*”
  6. Get-WindowsCapability -Online -Name“SNMP*”-->将显示已安装

该功能仍然没有显示在打开或关闭 Windows 功能窗口中,但是服务已安装,您可以从 services.msc 查看和配置,我已验证该服务是否按预期工作。

在此处输入图片描述

答案3

如果你没看到SNMP 服务在可用服务列表中,但只有SNMP 陷阱,则需要添加服务,可以按照以下步骤进行添加:

  1. 右键单击 Windows“开始”按钮并选择控制面板
  2. 选择程式在控制面板中,然后在 程序和特点, 选择打开或关闭 Windows 功能
  3. 寻找简单网络管理协议 (SNMP)在功能列表中,选中旁边的复选框,然后单击好的

安装服务支持后,配置服务的过程与配置在 Windows 7 系统上配置 SNMP

答案4

@Jay Pickett 提供了一个答案,其中包含了让我走上正轨的解决方法的实质。我实际上在微软技术网- 请参阅用户“Amnon H”的回复。由于我在 StackExchange 上有一个帐户,因此我更愿意在这里发表我的看法,而不是在 MS 服务器上发表。

以下是我的完整 PowerShell 脚本:

# If powershell prevents you from running this file, 
# saying that execution is disabled on this system,
#
#  Option 1:
# start a cmd window with administrator privileges,
# type PowerShell followed by an Enter,
# and at the PowerShell prompt, issue this command:
#   Set-ExecutionPolicy Unrestricted
# Note that this decreases your security somewhat :-/
# Then, you should be able to run this script simply by
#  C:\> PowerShell .\snmp.ps1
# or
#  PS C:\> .\snmp.ps1
#
#  Option 2:
# Just copy the lines below to clipboard and paste into the
# interactive PowerShell interpreter.



if (!(Test-Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate'))
{
    echo "creating key HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate"
    Set-Location -Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\'
    Get-Item -Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\' | New-Item -Name 'WindowsUpdate' -Force
}

if (!(Test-Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU'))
{
    echo "creating key HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU"
    Set-Location -Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\'
    Get-Item -Path 'REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\' | New-Item -Name 'AU' –Force
}

Get-WindowsCapability -Online -Name "SNMP*"
Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 0
Get-Service wuauserv | Restart-Service
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 1
Get-WindowsCapability -Online -Name "SNMP*"

即,该脚本首先准备一些 Windows 注册表项(“文件夹”),这些项是形成实际最佳点的 DISM cmdlet 所需要的。

相关内容