Показать полную графическую версию : [решено] Удаление принтера с указанным портом
Dragokas
12-07-2020, 02:25
Здравствуйте!
Хочу удалить принтер(ы), привязанные к указанному порту (например, "SHRFAX:").
Подскажите, как сделать (желательно однострочником).
Спасибо.
PS C:\Users\Alex> Get-Printer
Name ComputerName Type DriverName PortName Shared Published
---- ------------ ---- ---------- -------- ------ --------
Fax Local Microsoft Shared Fax D... SHRFAX: False False
Примерно так (только нету такого параметра):
$Printer = Get-Printer -PortName "SHRFAX:"
Remove-Printer -InputObject $Printer
А так не пробовали?
$printer = get-printer * | where {$_.portname -eq 'SHRFAX:'}; remove-printer -inputobject $printer
Dragokas
12-07-2020, 17:02
Да, так работает. Спасибо.
Dragokas
12-07-2020, 18:09
А вот как теперь это грамотно экранировать, чтобы вызвать из-под CMD ?
powershell.exe -ExecutionPolicy UnRestricted -c "$printer = get-printer * | where {$_.portname -eq 'SHRFAX:'}; remove-printer -inputobject $printer"
= : The term '=' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:2
А в чем у вас сложность выполнить этот код в powershell? Microsoft не рекомендует использовать cmd.
А вот как теперь это грамотно экранировать, чтобы вызвать из-под CMD ? »
Хмм, в десятке Ваш пример работает без ошибок, но требует админ привелегии:
> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1
>powershell.exe -ExecutionPolicy UnRestricted -c "$printer = get-printer * | where {$_.portname -eq 'SHRFAX:'}; remove-printer -inputobject $printer"
remove-printer : Отказано в доступе к указанному ресурсу.
строка:1 знак:63
+ ... ere {$_.portname -eq 'SHRFAX:'}; remove-printer -inputobject $printer
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (MSFT_Printer (N... = 0, Type = 0):ROOT/StandardCimv2/MSFT_Printer) [R
emove-Printer], CimException
+ FullyQualifiedErrorId : HRESULT 0x80070005,Remove-Printer
Dragokas
12-07-2020, 21:32
NickM, странно, действительно заработало. Запускал от админа. Возможно, где-то лишний знак затесался.
Jeffers, в реале запуск идёт не из-под CMD, а другой программы, поэтому так.
Microsoft не рекомендует использовать cmd. »
При том, что сама же до сих пор в Windows 10 его использует в ветке реестра AutoRun для подчистки за своим продуктом OneDrive.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.