2017-01-03 25 views
0

Powershell v2スクリプトを使用してWindows 7マシンにプリンタドライバをインストールしようとしています。私はポートとドライバを正しくインストールして設定するための準備ができましたが、プリントサーバーのプロパティフォームを設定する方法については何も見つかりませんでした。プリントサーバーのプロパティWindows 7

印刷用の正しいサイズを得るために、プリントサーバーのプロパティフォームを設定する方法が必要です。誰もがこれらのサイズがWindowsまたはレジストリに格納されている場所を知っていますか?

は参考のために、ここで私は、スクリプトに関しては、これまで持っているものです。

# 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?' 
$portName = $printerIP 
$portName1 = $printerIP + "_1" 
$portName2 = $printerIP + "_2" 
$printerModel = "HP Designjet Z3200 24in Photo" 
$driverINFPath = "C:\V5\HP WFP\Driver\hpdjz3200serieswx64pcl\hpi32pxs.inf" 
$driverConfigPath = "C:\V5\HP WFP\Config\Photo.dat" 
$driverConfigPath1 = "C:\V5\HP WFP\Config\Canvas.dat" 
$driverConfigPath2 = "C:\V5\HP WFP\Config\Cover.dat" 

#installs the printer port 
Function CreatePort { 
    param ($printerIP, $portName) 
    $newPort = ([wmiclass]"Win32_TcpIpPrinterPort").CreateInstance() 
    $newPort.HostAddress = $printerIP 
    $newPort.Name = $portName 
    $newPort.portNumber = "9100" 
    $newPort.Protocol = "1" 
    $newPort.SNMPEnabled = $true 

    $newPort.Put() 
    } 
CreatePort -printerIP $printerIP -portName $portName 
CreatePort -printerIP $printerIP -portName $portName1 
CreatePort -printerIP $printerIP -portName $portName2 

#installs the printer driver and printer 
printui.exe /if /b "$printerID" /f "$driverINFPath" /u /r "$portName" /m "$printerModel" 
Start-Sleep -s 10 
printui.exe /if /b "$printerID1" /f "$driverINFPath" /u /r "$portName1" /m "$printerModel" 
Start-Sleep -s 10 
printui.exe /if /b "$printerID2" /f "$driverINFPath" /u /r "$portName2" /m "$printerModel" 

#Configures the printer from specified file 
printui.exe /Sr /n "$printerID" /a "$driverConfigPath" d g r 
Start-Sleep -s 10 
printui.exe /Sr /n "$printerID1" /a "$driverConfigPath1" d g r 
Start-Sleep -s 10 
printui.exe /Sr /n "$printerID2" /a "$driverConfigPath2" d g r 
+0

これらは保存されているレジストリ内にあります。ここで参照するファイルパスは次のとおりです。 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Print \ Forms ここで、一貫性があるかどうかを確認し、レジストリに追加するために必要なものが何であるかを確認してください。 –

答えて

0

あなたはWPFアプリケーションのため[System.Printing]の.NETクラスを使用することができます。ここでは、私がDuplexとColor Modesを設定するために作ったスクリプトから変換した関数を示します。

Function Set-PrinterPageSize { 
    param (
     [string]$PrinterName, 

     [ValidateSet("NorthAmericaLegal","NorthAmerica11x17","NorthAmericaLetter")] 
     [String] 
     $PageSize 
    ) 
    Try { 
     #Set Perms to a variable to use when constructing instance of PrintServer 
     $Permissions = [System.Printing.PrintSystemDesiredAccess]::AdministrateServer 
     #Set Perms to a variable to use when retrieving Queues from PrintServer 
     $QueuePerms = [System.Printing.PrintSystemDesiredAccess]::AdministratePrinter 
     #Construct using PrintServer as using LocalPrintServer 
     $PrintServer = new-object System.Printing.LocalPrintServer -argumentList $Permissions 
     #Create New Queue object to assign properties to WITH permissions to change settings (getting queue from printserver won't have perms) 
     $NewQueue = new-object System.Printing.PrintQueue -argumentList $PrintServer,$PrinterName,1,$QueuePerms 
     #Check that Queue is capable of that page size, and set if so 
     $PageCaps = $NewQueue.GetPrintCapabilities().PageMediaSizeCapability 
     if ($null -ne $PageCaps) { 
      if ($PageCaps.PageMediaSizeName.Contains([System.Printing.PageMediaSizeName]::$PageSize)) { 
       #Set Page Size in default settings 
       $NewQueue.DefaultPrintTicket.PageMediaSize = [System.Printing.PageMediaSizeName]::$PageSize 
       #Win7 also requires setting userprint ticket 
       $NewQueue.UserPrintTicket.PageMediaSize = [System.Printing.PageMediaSizeName]::$PageSize 

      } else { 
       Write-Warning "$PageSize unavailable" 
      } 
     } 
     #Save changes and cleanup 
     $NewQueue.commit() 
     $NewQueue.dispose() 
     $PrintServer.commit() 
     $PrintServer.dispose() 

    } 
    Catch { 
     Write-Warning "Error Setting $PrinterName to $PageSize" 
    } 
} 
+0

答えをありがとう!私が今試みていることがうまくいかないなら、これを試してみましょう! –