Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Удаление принтера с указанным портом

Ответить
Настройки темы
PowerShell - [решено] Удаление принтера с указанным портом

Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте!

Хочу удалить принтер(ы), привязанные к указанному порту (например, "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

-------
Alex Dragokas


Отправлено: 02:25, 12-07-2020

 

Аватара для NickM

Ветеран


Contributor


Сообщения: 4241
Благодарности: 994

Профиль | Отправить PM | Цитировать


А так не пробовали?
Код: Выделить весь код
$printer = get-printer * | where {$_.portname -eq 'SHRFAX:'}; remove-printer -inputobject $printer

Последний раз редактировалось NickM, 12-07-2020 в 07:54.

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:02, 12-07-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


Да, так работает. Спасибо.

-------
Alex Dragokas


Отправлено: 17:02, 12-07-2020 | #3


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


А вот как теперь это грамотно экранировать, чтобы вызвать из-под 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

-------
Alex Dragokas


Отправлено: 18:09, 12-07-2020 | #4


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


А в чем у вас сложность выполнить этот код в powershell? Microsoft не рекомендует использовать cmd.

Отправлено: 18:36, 12-07-2020 | #5


Аватара для NickM

Ветеран


Contributor


Сообщения: 4241
Благодарности: 994

Профиль | Отправить PM | Цитировать


Цитата Dragokas:
А вот как теперь это грамотно экранировать, чтобы вызвать из-под 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:58, 12-07-2020 | #6


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


NickM, странно, действительно заработало. Запускал от админа. Возможно, где-то лишний знак затесался.

Jeffers, в реале запуск идёт не из-под CMD, а другой программы, поэтому так.

Цитата Jeffers:
Microsoft не рекомендует использовать cmd. »
При том, что сама же до сих пор в Windows 10 его использует в ветке реестра AutoRun для подчистки за своим продуктом OneDrive.

-------
Alex Dragokas


Отправлено: 21:32, 12-07-2020 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Удаление принтера с указанным портом

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
RDP/Citrix/Term - [решено] Пользователь с указанным именем не существует RDP Rintok Сетевые технологии 2 25-11-2014 10:45
Драйвер - [решено] Полное удаление драйверов принтера The_Immortal Microsoft Windows 2000/XP 13 19-06-2013 14:52
CMD/BAT - [решено] Вывод списка файлов с указанным расширением kelevara Скриптовые языки администрирования Windows 8 27-04-2013 03:59
Драйвер - Удаление и установка драйверов принтера в Vista DmB89 Microsoft Windows Vista 3 15-06-2010 22:14
VBS: Добавление и удаление принтера в зависимости от членства в группе MikhailL Microsoft Windows NT/2000/2003 0 21-12-2008 23:19




 
Переход