1

I'm looking to disable the SNMP Status Enabled flag/checkbox for a printer driver using powershell. The checkbox can be found on Windows 7 under Control Panel -> Devices and Printers -> -> printer properties -> Ports -> Configure Port

Image of the checkbox desired to toggle to disable status: enter image description here

If examples of powershell scripts are available I wish to review them. I'm unable to find resources in books or online that cover this topic.

4

4 回答 4

2

以下工作但并不完全优雅。它必须从提升的提示符下运行。它将遍历所有 TCP/IP 端口并在启用时禁用它们上的 SNMP。但是,您需要重新启动 (shutdown -t 0 -r) 才能应用该设置。

    dir "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" | gp "SNMP Enabled" | ?{$_."SNMP Enabled" -eq 1} | %{sp -Path $_.PSPath -Name "SNMP Enabled" -Value 0}

    shutdown -t 0 -r

您还可以查看server 2012 上的打印机 cmdlet或使用MS 的 portmgr.vbs。

于 2013-08-23T12:14:29.307 回答
1

当我尝试答案时,我收到有关尝试通过管道输入 gp 的错误。由于我只想为每台 TCP/IP 打印机关闭 SNMP,我将命令缩短为

dir "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" | %{sp -Path $_.PSPath -Name "SNMP Enabled" -Value 0}

然后重新启动。这样做之后,我所有连接的 TCP/IP 打印机在端口配置中都显示 SNMP 已禁用。

于 2014-10-07T23:37:21.307 回答
1

好帖子。

我只是想分享一下我运行了上面的命令,并重新启动,但它没有 100% 工作。我发现除了前面的命令和重新启动之外,还将SNMP 索引更改为 0 可以解决问题。所以我的 ps 命令如下所示(我手动重新启动,所以我在命令中没有那个):

dir "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" | %{sp -Path $_.PSPath -Name "SNMP Enabled" -Value 0}

目录 "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" | %{sp -Path $_.PSPath -Name "SNMP 索引" -Value 0}

于 2016-06-14T15:26:11.893 回答
1

这篇文章只是对 Michael、Bob 和 Kevin 所做的出色工作进行了补充,并将它们合二为一。它还会在进行更改之前保存现有设置的副本,以防您稍后需要恢复。

此外,无需重新启动服务器 - 重新启动 spooler 服务就足够了:

Get-ChildItem -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports' | Out-File -FilePath 'PrinterPortSettings.txt'

Get-ChildItem -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports' | ForEach-Object -Process {
    Set-ItemProperty -Path $_.PSPath -Name 'SNMP Enabled' -Value 0
    Set-ItemProperty -Path $_.PSPath -Name 'SNMP Index' -Value 0
}

Get-Service -Name 'Spooler' | Restart-Service -Force
于 2020-09-08T09:29:23.663 回答