Какой скрипт на языке VBScript из папки C:\Windows\System32\Printing_Admin_Scripts\ru-RU\ можно использовать для решения конкретной задачи?

Как изменить настройки портов принтера на сервере Windows Server 2019, отключив порт port1 и включив port4, с сохранением остальных портов, используя скрипты vbs или PowerShell?
  • 20 июня 2024 г. 23:31
Ответы на вопрос 2
Для решения данной задачи можно воспользоваться скриптом на языке VBScript `prnport.vbs`, который находится в папке C:\Windows\System32\Printing_Admin_Scripts\ru-RU\. Данный скрипт позволяет создавать, удалять и перечислять порты принтера.

Для изменения настроек портов принтера на сервере Windows Server 2019 с помощью VBScript можно использовать следующий код:

```vbscript
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colPorts = objWMIService.ExecQuery("SELECT * FROM Win32_TCPIPPrinterPort")

For Each objPort In colPorts
    If objPort.Name = "port1" Then
        objPort.Delete_
    End If
Next

Set objNewPort = objWMIService.Get("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "port4"
objNewPort.Protocol = 1
objNewPort.HostAddress = "printer_ip_address"
objNewPort.PortNumber = 9100
objNewPort.SNMPEnabled = False
objNewPort.Put_
```

Этот скрипт удалит порт с именем "port1" и создаст новый порт с именем "port4", указанным IP-адресом принтера и другими необходимыми настройками.

Также данную задачу можно решить с использованием скриптов на PowerShell.
попробуй powershell 
$printerName = "имя_принтера"
# Снятие "галочки" с порта port1
(Get-PrintConfiguration -PrinterName $printerName).PrinterPortName.Remove("port1")
# Добавление "галочки" для порта port4
(Get-PrintConfiguration -PrinterName $printerName).PrinterPortName.Add("port4")

Не совсем уверен но кажется нужно после сохранить изменения.
я на нашел готовых примеров использования, а chatgpt генерит что то типа этого, чему я не очень верю:
Set-PrintConfiguration -PrinterName $printerName -PrinterPortName (Get-PrintConfiguration -PrinterName $printerName).PrinterPortName
Похожие вопросы