2016-09-07 3 views
0

내가 프린터 RDS 2012 문제가 및 reliablity를 인쇄하는 RDS 2012 비참한 및 터미널 서비스 상자 그물 스풀러되어 있기 때문에 를 네트워크 프린터를 만드는 그룹 정책을 사용하여 기존 프린터를 다시 및파워 쉘 스크립트 필수 중지

그룹 정책을 시작합니다 기본 설정은 내가

Get-Printer | remove-printer get rid of them o.k 

파워 쉘

를 사용하여 프린터를 다시 할 수있는 기능을하고 싶지만 어떻게 프린터를 다시 할

신뢰할 수없는 약간 ALO이다.

답변

0

, 당신은 WMI를 사용할 수

그런 다음 프린터를 만들고, (Win32_PrinterDriver 클래스) 드라이버를 추가 프린터 IP 포트 (win32_tcpipPrinterPort 클래스)를 작성해야

(Win32_Printer 클래스),

당신은 각 작업이 도우미 기능을 사용할 수 있습니다

Function CreatePrinterPort { 
Param ($PrinterIP, $PrinterPort, $PrinterPortName, $ComputerName) 
$wmi = [wmiclass]"\\$ComputerName\root\cimv2:win32_tcpipPrinterPort" 
$wmi.psbase.scope.options.enablePrivileges = $true 
$Port = $wmi.createInstance() 
$Port.name = $PrinterPortName 
$Port.hostAddress = $PrinterIP 
$Port.portNumber = $PrinterPort 
$Port.SNMPEnabled = $false 
$Port.Protocol = 1 
$Port.put() 
} 

Function InstallPrinterDriver { 
Param ($DriverName, $DriverPath, $DriverInf, $ComputerName) 
$wmi = [wmiclass]"\\$ComputerName\Root\cimv2:Win32_PrinterDriver" 
$wmi.psbase.scope.options.enablePrivileges = $true 
$wmi.psbase.Scope.Options.Impersonation = [System.Management.ImpersonationLevel]::Impersonate 
$Driver = $wmi.CreateInstance() 
$Driver.Name = $DriverName 
$Driver.DriverPath = $DriverPath 
$Driver.InfName = $DriverInf 
$wmi.AddPrinterDriver($Driver) 
$wmi.Put() 
} 

Function CreatePrinter 
{ 
param ($PrinterCaption, $PrinterPortName, $DriverName, $ComputerName) 
$wmi = ([WMIClass]"\\$ComputerName\Root\cimv2:Win32_Printer") 
$Printer = $wmi.CreateInstance() 
$Printer.Caption = $PrinterCaption 
$Printer.DriverName = $DriverName 
$Printer.PortName = $PrinterPortName 
$Printer.DeviceID = $PrinterCaption 
$Printer.Put() 
} 

사용 예 :

만들기 포트 :

InstallPrinterDriver -ComputerName $Computer -DriverName "Xerox Phaser 3600 PCL 6" -DriverPath "C:\PrinterDrivers\Xerox\x64" -DriverInf "C:\PrinterDrivers\Xerox\x64\sxk2m.inf" 

프린터 추가 :

CreatePrinterPort -PrinterIP 192.168.100.100 -PrinterPort 9100 -PrinterPortName 192.168.100.100 -ComputerName $Computer 

드라이버 설치

CreatePrinter -PrinterCaption "Xerox Phaser 3600 PCL 6" -PrinterPortName "192.168.100.100" -DriverName "Xerox Phaser 3600 PCL 6" -ComputerName $Computer 

말할 필요도없이, 당신은 ... 대상 컴퓨터에 대한 관리자 권한이 필요

행운을 빌어 요

0

프린터를 제거하기 전에 변수에 관한 정보를 안전하게 보관하십시오. 제거 단계 후에 cmdlet Add-Printer를 사용하여 추가 할 수 있습니다.

PowerShell을 3 이하에
+0

$ lp = Get-Printer add-printer = $ lp 정교하게하십시오 – user3265817

+0

시도하십시오 : '$ Printer = Get-Printer' 다음에 : '$ 프린터 | % {Add-Printer-ConnectionName $ _. 컴퓨터 이름}' – guiwhatsthat