2016-11-23 11 views
1

Я пытаюсь создать сценарий PowerShell, который позволяет мне добавлять и настраивать принтер с тремя экземплярами принтера. Это то, что у меня есть до сих пор:PowerShell v2 Добавление принтера

# Printer Info 
$printerID = "HP Designjet Z3200 24in Photo" 
$printerID1 = "HP Designjet Z3200 24in Photo - Canvas" 
$printerID2 = "HP Designjet Z3200 24in Photo - Cover" 
$printerIP = Read-Host 'What is the Poster Printer IP Address?' 
$printerPort = "IP_$printerIP" 
$printerModel = "HP Designjet Z3200 24in Photo" 
# Speak with Ted about a specific place to put the poster driver pre-extracted 
$driverINFPath = "C:\Velocity\HP WFP\Driver\hpdjz3200serieswx64pcl\hpi32pxs.inf" 

# Build a new Local TCP Printer Port, naming it with values unique to the Printer ID: 
$newPort = ([wmiclass]"Win32_TcpIpPrinterPort").CreateInstance() 
$newPort.HostAddress = $printerIP 
$newPort.Name = $printerPort 
$newPort.Put() 

# Add the printer 
printui.exe /if /b "$printerID" /f "$driverINFPath" /u /r "$printerPort" /m "$printerModel" 
printui.exe /if /b "$printerID1" /f "$driverINFPath" /u /r "$printerPort" /m "$printerModel" 
printui.exe /if /b "$printerID2" /f "$driverINFPath" /u /r "$printerPort" /m "$printerModel" 

Я скопировал деталь из более ранней записи для портовой части сценария. Я пытаюсь понять, что такое .Put(), и я не могу найти его нигде. Любая помощь приветствуется.

+0

Я дал ссылку для 'Put()' ниже - * но *, если у вас возникла проблема с этим методом (что я подозреваю), пожалуйста, проясните здесь, в комментариях и [изменить] свой вопрос, чтобы я мог отредактируйте мой ответ, чтобы помочь вам в решении проблемы. – gravity

+1

@gravity Я действительно нашел то, что мне нужно, прежде чем увидеть этот комментарий. Спасибо за комментарий и ответ! –

+0

Я подозреваю, что вам нужно обернуть все назначение в функции, да? :) – gravity

ответ

0

... Windows PowerShell получает доступ к WMI через .NET Framework и Класс System.Management. Вместо использования SWbemObject, Windows PowerShell использует класс System.Management.ManagementObject. Для лучше или хуже, этот класс использует метод с именем Put для сохранения изменений в свойство чтения-записи.

От TechNet, который на самом деле по сравнению VBScript Put_ в PowerShell Put() вызовов.