2016-11-23 63 views
1

我试图创建一个PowerShell脚本,允许我使用打印机的3个实例添加和配置打印机。这是我到目前为止: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通过.NET Framework访问WMI,并通过System.Management类访问 。而不是使用SWbemObject,Windows PowerShell使用System.Management.ManagementObject类。对于 好或坏,此类使用名为Put的方法将更改保存为 读写属性

TechNet,这实际上是比较的VBScript Put_到PowerShell的Put()电话。