2013-03-15 2 views
0

Я пытаюсь развернуть принтеры на ПК в своей организации с помощью сценария powershell. Сам сценарий развертывается с помощью групповой политики для запуска при запуске машины. Когда машина в тестовой OU загружается, она будет сидеть, пожалуйста, подождите бесконечно, и сценарий никогда не завершается. Скрипт работает, если вы выполните его вручную. Я не буду вдаваться в подробности об этом, но развертывание принтеров напрямую через групповую политику не является вариантом.Сценарий запуска Powershell для развертывания принтера с помощью объекта групповой политики

Powershell Сценарий

# 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

Добавьте несколько «пишущих хостов», чтобы найти, где это делается –

ответ

0

Я понял вопрос (New-Object -ComObject WScript.Network) .AddWindowsPrinterConnection была проблема, я заменил его rundll32 printui.dll , PrintUIEntry/ga/n \ printername и его работа сейчас

Смежные вопросы

 Смежные вопросы