【问题标题】:WMI Win32_Printer not showing up in =>Control Panel\All Control Panel Items\Devices and PrintersWMI Win32_Printer 未显示在 =>控制面板\所有控制面板项\设备和打印机中
【发布时间】:2016-06-15 18:38:44
【问题描述】:

=>控制面板\所有控制面板项\设备和打印机中有一台本地打印机。我通过单击“删除设备”手动删除了它。并且打印机确实被移除了,不再出现。

问题是,我们有下面的 .net 代码来检查是否安装了打印机。它返回真。如果我们按名称执行“SELECT * FROM Win32_Printer”,打印机似乎仍然存在。

问题:

1) 谁能给我更多的细节,为什么本地打印机记录仍然存在?

2) 我可以信任下面的代码,还是需要更多条件来检查打印机安装?

ManagementScope oManagementScope = new ManagementScope(ManagementPath.DefaultPath);
oManagementScope.Connect();
SelectQuery oSelectQuery = new SelectQuery();
oSelectQuery.QueryString = @"SELECT * FROM Win32_Printer WHERE Name = '" +  sPrinterName.Replace("\\", "\\\\") + "'";
using(ManagementObjectSearcher oObjectSearcher = new ManagementObjectSearcher(oManagementScope, oSelectQuery))
{
    using(ManagementObjectCollection oObjectCollection = oObjectSearcher.Get())
    {
        return oObjectCollection.Count > 0;
    }
}

【问题讨论】:

    标签: .net wmi printers


    【解决方案1】:

    经过深入研究,顺便说一句,我的 windows 是 8.1。

    1) 问题仍然有效。 (欢迎任何 cmets)。我的猜测是:当我移除打印机时,发生了一些错误,并且当窗口填充打印机列表时,错误会阻止其他打印机出现。

    2) 我以前检查打印机安装的方法是有效的。删除打印机时,打印机驱动程序或窗口中一定存在错误/权限问题。

    我的解决方案对于这种情况(如果您尝试安装打印机,它说打印机已经存在并且没有显示在打印机列表中),您可以试试这个:

    1) 打开windows powershell,运行Get-Printer,它会列出所有的打印机,和控制面板中的打印机列表比较,记住哪一个少了。 Microsoft Get-Printer instruction

    2) 使用相同的 powershell,按名称运行 Remove-Printer,删除未显示的打印机。 Microsoft Remove-Printer instruction

    3)尝试重新安装打印机。

    在我的情况下,在我重新安装打印机然后将其删除后,一切恢复正常。我找不到任何信息可以确认问题和解决方法。但它确实存在。希望它可以帮助一些身体。祝你好运。

    【讨论】:

      【解决方案2】:

      Win32_Printer 派生自 CIM_Printer,而 CIM_LogicalDevice 派生自 CIM_LogicalDevice。所以点在任何这些表中都有打印机信息的残留物。如果您想确定,请在运行删除代码后检查下表:

      • CIM_LogicalDevice
      • Win32_PnpEntity

      您也可以使用下面提到的查询来删除打印机。我还没有未测试

      $wshNetwork = New-Object -ComObject WScript.Network
      $wshNetwork.RemovePrinterConnection("\\prntsvr01\myprinter")
      

      【讨论】:

      • 此案很难重现。如果我再次看到这个案例,我会试试你提供的表格。非常感谢。
      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      相关资源
      最近更新 更多