2013-03-15 1 views
0

powershell 스크립트를 통해 조직의 PC에 프린터를 배포하려고합니다. 스크립트 자체는 시스템 시작시 실행할 그룹 정책을 통해 배포됩니다. 테스트 OU의 시스템이 부팅 될 때 기다려주십시오. 그러면 스크립트가 완료되지 않습니다. 스크립트는 수동으로 실행하면 작동합니다. 자세한 내용은 다루지 않지만 그룹 정책을 통해 프린터를 직접 배포하는 것은 옵션이 아닙니다. 파워 쉘 스크립트Powershell GPO를 통한 프린터 배포를위한 시작 스크립트

# Print File Server Path 
$printsrv = "\\Servername\Deploy\" 

# Check FTP Server Status 
$file = ($env:computername + '.csv') 
$num = 0 
IF ((Test-Path ($printsrv + $file)) -eq $false) { 
Do { 
Start-Sleep -Seconds 5 
$num = $num + 1 
} Until ((Test-Path ($printsrv + $file)) -eq $true -or $num -eq 3) 
} 
if ((Test-Path ($printsrv + $file)) -eq $false) {exit} 

# Create Printers 
$print = Import-Csv ($printsrv + $file) 
$num = 0 
do { 
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection($print.p_address[$num]) 
$num = $num + 1 
} Until ($num -eq $print.Count) 

#Set Default 
$num = 0 
Do { 
$contains = $Print.Def_Bit[$num].Contains(1) 
$Default = $print.P_Address[$num] 
$num++ 
} until ($contains -eq $true -or $num -eq $print.Count) 
(New-Object -ComObject WScript.Network).SetDefaultPrinter($Default) 
Remove-Item -Path ($printsrv + $file) 

된 CSV 파일을

#TYPE System.Data.DataRow 
"P_Address","DEF_Bit" 
"\\server\printer","" 
"\\server\printer","True" 
+0

'write-host'를 추가하여 어디서 멈추는 지 찾아냅니다 –

답변

0

내가 문제를 파악 (뉴 - 객체 -ComObject WScript.Network) .AddWindowsPrinterConnection 내가 Rundll32는 PrintUI.dll이 그것을 대체 문제였다 , PrintUIEntry/ga/n \ printername 및 그 작업 이제

관련 문제