You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用打印机双向通信?PowerShell操作遇EnableBIDI属性未找到问题

禁用打印机双向通信的两种方法(含PowerShell问题修复)

我来帮你搞定这两个问题,尤其是你遇到的PowerShell操作时EnableBIDI属性找不到的坑👇

一、图形界面操作步骤

如果你偏好可视化设置,按以下步骤来:

  • 打开「控制面板」→「设备和打印机」(Win10/11也可以从「设置」→「蓝牙和设备」→「打印机和扫描仪」进入,找到对应打印机后点「打印机属性」)
  • 右键目标打印机,选择**「打印机属性」**(别选普通的「属性」,那是另一回事)
  • 切换到「端口」标签页
  • 找到当前打印机正在使用的端口,取消勾选下方的「启用双向支持」
  • 点击「确定」保存设置就搞定了

二、PowerShell命令行方法(解决属性找不到的问题)

你遇到的问题很常见:明明能看到EnableBIDI属性,但修改时提示找不到。这是因为打印机对象的EnableBIDI是只读的,真正控制双向通信的是打印机端口的属性,得换个WMI类来操作:

步骤1:先获取目标打印机的端口名称

把下面命令里的"你的打印机名称"换成你实际的打印机名字(可以在设备和打印机里看到):

$printerName = "你的打印机名称"
$printer = Get-WmiObject -Class Win32_Printer | Where-Object {$_.Name -eq $printerName}
$portName = $printer.PortName

步骤2:修改对应端口的双向通信设置

通过Win32_TcpIpPrinterPort类找到端口,修改并保存:

$port = Get-WmiObject -Class Win32_TcpIpPrinterPort | Where-Object {$_.Name -eq $portName}
# 禁用双向通信
$port.EnableBIDI = $false
# 提交更改(必须管理员权限运行PowerShell!)
$port.Put()

验证修改是否生效

运行下面的命令,就能看到EnableBIDI已经变成False了:

Get-WmiObject -Class Win32_TcpIpPrinterPort | Where-Object {$_.Name -eq $portName} | Select-Object Name, EnableBIDI

为啥之前会报错?

简单说:

  • Win32_Printer里的EnableBIDI属性只是展示状态,不能直接修改
  • 必须通过管理端口的Win32_TcpIpPrinterPort类来操作,而且一定要用管理员身份启动PowerShell,否则Put()会因为权限不足失败

内容的提问来源于stack exchange,提问作者Tsukasa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:20:39