1

PowerShell を使用して、プリンター ドライバーの SNMP ステータス有効フラグ/チェックボックスを無効にしようとしています。このチェックボックスは、Windows 7 の [コントロール パネル] -> [デバイスとプリンター] -> -> [プリンターのプロパティ] -> [ポート] -> [ポートの構成] にあります。

ステータスを無効に切り替えるチェックボックスの画像: ここに画像の説明を入力

PowerShell スクリプトの例が利用できる場合は、それらを確認したいと思います。このトピックを扱っている本やオンラインのリソースを見つけることができません。

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

サーバー 2012 のプリンター コマンドレットを確認するか、MS の portmgr.vbs を使用することもできます。

于 2013-08-23T12:14:29.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}

dir "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports" | %{sp -パス $_.PSPath -名前 "SNMP インデックス" -値 0}

于 2016-06-14T15:26:11.893 に答える
1

この投稿は、Michael、Bob、Kevin による優れた成果に加えて、それらを 1 つにまとめたものです。また、後で元に戻す必要がある場合に備えて、変更を行う前に既存の設定のコピーを保存します。

また、サーバーを再起動する必要はありません。スプーラ サービスを再起動するだけで十分です。

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 に答える