2014-11-05 4 views
0

Я довольно новый и, ну, ужасно весь этот сценарий: так что любая помощь будет оценена.Борьба с foreach

В основном я пытаюсь создать сценарий PowerShell, который устанавливает неопределенное количество принтеров на неопределенное количество компьютеров. Имена компьютеров и имена принтеров будут поступать из локальных текстовых файлов.

Это то, что я до сих пор:

$credentials = Get-Credential 
$printerlist = Get-Content c:\setup\printers.txt 
get-content c:\setup\names.txt | foreach-object {foreach($printer in $printerlist){rundll32 printui.dll PrintUIEntry /ge /c $_ /n $printer}} 

EDIT: Я получаю ошибку, не в состоянии перечислить на операцию соединения принтера машина не может быть завершена (0x0000007b ошибка) Я попытался модифицировать сценарий в любом случае я могу придумать, что, вероятно, меньше, чем должно быть.

+2

Вы получаете сообщение об ошибке? Это кажется скорее заявлением, чем просьбой о помощи в чем-то. – TheMadTechnician

+0

Добро пожаловать в SO! Что не работает, и что вы пробовали? – J0e3gan

+0

/ge перечисляет подключения к принтерам на данном компьютере. См. Http://technet.microsoft.com/en-us/library/ee624057.aspx –

ответ

0

Я не думаю, что у вас есть проблема с вашей петлей foreach.

Я думаю, это просто использование rundll32 printui.dll PrintUIEntry

Установка принтера:

rundll32 printui.dll,PrintUIEntry /in /c "\\COMPUTER_NAME" /n "\\PRINT_SERVER_NAME\PRINTER_NAME" 

Наборы принтера по умолчанию:

rundll32 printui.dll,PrintUIEntry /y /c "\\COMPUTER_NAME" /n "\\PRINT_SERVER_NAME\PRINTER_NAME" 

Попробуйте установить с /in индивидуально для одного компьютера с Powershell консоли без ваш скрипт, чтобы увидеть, все ли у вас такая же ошибка, может быть разрешение, но я так не думаю.