如何解决Windows 10/11 删除打印机时,拒绝访问的问题

最近在删除打印机时,遇到无法删除的情况。提示无法删除,拒绝访问。

Windows 11不提供传统控制面板的管理界面(我记得以前是可以找到入口的),新式WinUI的界面烂得不行,我在点了删除设备按钮后,界面直接无反应,也没有任何提示。

动画

 

 

我尝试直接调用PrintUIEntry命令删除,提示拒绝访问。

1 rundll32 printui.dll,PrintUIEntry /dl /n "HP Smart Tank 750 series [15D86F] (已重定向 2)"

image

 

 

我只能尝试用代码去删除,我编写了如下的代码

 1 #include <iostream>
 2 #include<Windows.h>
 3 #include<tchar.h>
 4 
 5 int main()
 6 {
 7     DWORD pcbNeeded = 0;
 8     DWORD pcReturned = 0;
 9 
10     auto result = EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME, NULL, 2, NULL, 0, &pcbNeeded, &pcReturned);
11     LPPRINTER_INFO_2 pPrtInfo2 = (LPPRINTER_INFO_2)LocalAlloc(LPTR, pcbNeeded);
12     result = EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME, NULL, 2, (LPBYTE)pPrtInfo2, pcbNeeded, &pcbNeeded, &pcReturned);
13 
14     if (!result || pPrtInfo2 == NULL)
15         return 0;
16 
17     std::wcout.imbue(std::locale("chs"));
18 
19     for (int i = 0; i < pcReturned; i++)
20     {
21         LPPRINTER_INFO_2 p_curPrtInfo = pPrtInfo2 + i;
22         std::wcout << p_curPrtInfo->pPrinterName << std::endl;
23 
24         //我要删除的打印机序号
25         if (i == 8)
26         {
27             HANDLE hPrinter = NULL;
28 
29             PRINTER_DEFAULTSW psw{};
30             psw.DesiredAccess = PRINTER_ALL_ACCESS;
31             OpenPrinter(p_curPrtInfo->pPrinterName, &hPrinter, &psw);
32 
33             DWORD dwErr = GetLastError();
34 
35             BOOL b_DelResult = DeletePrinter(hPrinter);
36             std::cout << (b_DelResult == TRUE ? "删除成功" : "删除失败") << std::endl;
37 
38             DWORD dwError = GetLastError();
39             ClosePrinter(hPrinter);
40         }
41     }
42     return 1;
43 }

 

发现OpenPrinter的错误码是5,权限不足。我尝试管理员运行,还是返回5。

 

运行输入 printmanagement.msc ,打开打印管理。

找到需要删除的打印机,打开属性

image

 

切换到安全页

image

 

发现确实没有一个用户拥有“管理此打印机”的权限。

点击高级按钮

image

 

点击 更改,然后点击高级,在弹出的用户列表里选择Administrator(你机器上的管理员用户),点击确定

image

此时我们关闭打印机属性对话框,再重新打开,可以看到添加按钮已经可用了。

image

 

 点击添加按钮,按前面一样的步骤,添加Administrator用户(本机上的管理员用户)

image

 

然后钩上相应的权限

image

 

此时就可以正常删除打印机了。

posted @ 2026-08-05 16:46  zhaotianff  阅读(12)  评论(0)    收藏  举报