我正在寻找使用PowerShell禁用打印机驱动程序的SNMP Status Enabled标志/复选框。该复选框可以在Windows 7的控制面板下找到 - >设备和打印机 - > - >打印机属性 - >端口 - >配置端口
要切换为禁用状态的复选框的图像:
如果有PowerShell脚本的示例,我希望对它们进行审核。我无法在书籍或网络上找到涵盖此主题的资源。
答案 0 :(得分: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
答案 1 :(得分: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。
答案 2 :(得分: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}
dir“HKLM:\ SYSTEM \ CurrentControlSet \ Control \ Print \ Monitors \ Standard TCP / IP Port \ Ports”| %{sp -Path $ _。PSPath -Name“SNMP索引” - 值0}
答案 3 :(得分:0)
这篇文章只是增加了Michael,Bob和Kevin所做的出色工作,并将它们组合为一个。在进行更改之前,它还将保存现有设置的副本,以备日后需要还原时使用。
此外,无需重新启动服务器-重新启动后台打印程序服务就足够了:
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