【问题标题】:Create Printer Powershell创建打印机 Powershell
【发布时间】:2011-03-31 15:00:49
【问题描述】:

在获取我正在编写的脚本以成功创建打印机时遇到重大困难。到目前为止,我已经成功地创建了打印机端口,但它总是在创建打印机时出错。

从中提取信息的 CSV 文件如下所示:

PrinterName,PrinterPort,IPAddress,Location,Comment,PrintDriver,
Testprint1,Testport1,10.10.10.10,IT_Test,Test_1,HP LaserJet 4200 PCL 5e,

我得到的错误信息是这样的:

Exception calling "Put" with "0" argument(s): "Generic failure "
At C:\myversion.ps1:53 char:19
+ $objNewPrinter.Put <<<< () 
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

我使用的代码是这样的:

trap { $error[0].Exception | get-member } $objNewPrinter.Put()

Write-Host ("`tCreating " + $strPrinterName.Count + " Printer's`t") 
$objPrint = [WMICLASS]"\\timvista\ROOT\cimv2:Win32_Printer"   
$objPrint.psbase.scope.options.EnablePrivileges = $true 

## Loop through and create each printer 
For($i=0; $i -lt $PrinterName.count; $i++) 
{ 
$objNewPrinter = $objPrint.createInstance() 
$objNewPrinter.DeviceID = $PrinterName[$i] ## This is the printer name 
$objNewPrinter.DriverName = $PrintDriver[$i] 
$objNewPrinter.PortName = $PrinterPort[$i] 
$objNewPrinter.Location = $Location[$i] 
$objNewPrinter.Comment = $Comment[$i] 
$objNewPrinter.ShareName = $PrinterName[$i] 
$objNewPrinter.Put() 
$objPrint
## Add Security group 
## Not completed yet 
} 

是否有人对什么是一般故障以及如何对其进行故障排除有任何想法?

【问题讨论】:

    标签: powershell wmi


    【解决方案1】:

    Tim,当错误的参数传递给 WMI 方法时会引发 Generic failure 错误,因此有两个建议,首先尝试使用真实端口名称而不是 Testport1 并检查 DriverName 必须是现有端口的确切名称司机。

    【讨论】:

    • 有没有办法通过 powershell 列出现有打印驱动程序的确切名称?到目前为止,我一直在使用打印机控制面板小程序的服务器属性部分中的驱动程序选项卡。我还将对我们将使用的真实打印机名称进行测试。
    • $Class = "win32_printer" Get-WmiObject -class $Class | ft name, drivername -auto
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多