我需要在多台服务器上安装多台打印机,并希望编写脚本,以便只需要配置一次。
我正在使用PowerShell查询2个CSV文件; 1个获取安装打印机的计算机列表,另一个列出所需打印机的名称,IP,驱动程序,位置。我正在使用 2 个foreach
循环来完成此操作,并使用一个break
来尝试使其正确循环。
目前,它是第一台PC的break :outer
安装了所有打印机。如果我将其移动到foreach ($printer in $printers)
循环内部,它只会将第一台打印机安装到所有计算机上。
感谢您提供任何人都可以提供的任何帮助。
$computerfile = Import-Csv C:computerlist.csv
$printers = Import-Csv C:printers2.csv
foreach ($computer in $computerfile) {
"computer: $computer"
:outer
foreach ($printer in $printers) {
Add-PrinterPort -ComputerName $computer.Name -Name $printer.IP -PrinterHostAddress $printer.IP
Add-Printer -ComputerName $computer.Name -Name $printer.Name -DriverName $printer.Driver -PortName $printer.IP -ShareName $printer.Name -Location $printer.Location
Set-printer -ComputerName $computer.Name -Name $printer.Name -Shared $false -Published $true
}
break :outer
}
请从代码中删除中断符:外部。
正在发生的事情是,第一个循环开始运行,并且只进入第二个循环一次!因为中断,并跳转到下一台计算机。