Показать полную графическую версию : [решено] Удаление принтеров из командной строки
SharkyEXE
05-04-2020, 21:26
Iska
Здравствуйте.
Тогда, если Вы знаете, будьте так любезны, напишите альтернативные, не Wbem способы удаления принтера?
Я не знаток, не мага профессионал, просто я считал, что vbs или wmic - это разные способы удаления принтера
Теперь мне хочется, если это возможно, разные методы, разные технологии удаления принтера
Спасибо.
Разве что:
rundll32.exe printui.dll,PrintUIEntry /n "Epson Stylus C20 Series (M)" /dl
SharkyEXE
05-04-2020, 23:25
Iska
Здравствуйте.
Итого, подъитог
Абсолютно одинаковые способы удаления принтера (способы на Wbem, vbs = wmic, кому что нравится, можно использовать ОДНО ИЗ или сразу оба способа, функционально одно и тоже)
vbs (http://forum.oszone.net/post-2914404-19.html)
Option Explicit
On Error Resume Next
WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_
WScript.Quit 0
wmic (http://forum.oszone.net/post-2914387-17.html)
wmic.exe Printer where "DeviceID='Epson Stylus C20 Series (M)'" delete
Альтернативный способ удаления принтера (способ не на Wbem)
rundll32 (http://forum.oszone.net/post-2915946-42.html)
rundll32.exe printui.dll,PrintUIEntry /n "Epson Stylus C20 Series (M)" /dl
Все верно написал или я ошибся, просьба поправить?
Угу. Только лучше будет написать как-то так:
1. Wbem:
а) WSH (VBScript): …
б) утилита командной строки wmic.exe: …
2.
SharkyEXE
22-08-2021, 13:56
Iska
Здравствуйте
Я могу ошибаться, просьба поправить, но я когда использую код перейти (http://forum.oszone.net/post-2914469-28.html), я код скомпилировал в exe файл, когда я запускаю exe файл, то если у меня нету принтера нету, то вываливается ошибка
Суть - можно Вас попросить, пожалуйста, в коде (http://forum.oszone.net/post-2914469-28.html) сделать проверку, мол:
1) если принтер Epson Stylus C20 Series (M) найдется, то для принтера Epson Stylus C20 Series (M) сделать команду
$oSWbemLocator.ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_
2) если принтера Epson Stylus C20 Series (M) нету, то для принтера Epson Stylus C20 Series (M) не делать команду
$oSWbemLocator.ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_
Пожалуйста, будьте так, любезны
SharkyEXE, попробуйте, например, так:
AutoItSetOption("MustDeclareVars", 1)
Local $oSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemObjectEx
For $oSWbemObjectEx In $oSWbemLocator.ConnectServer(".", "root\cimv2").InstancesOf("Win32_Printer")
If $oSWbemObjectEx.DeviceID = "Epson Stylus C20 Series (M)" Then
$oSWbemObjectEx.Delete_
ExitLoop
EndIf
Next
Exit(0)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.