嵌套的 foreach 循环以安装打印机



我需要在多台服务器上安装多台打印机,并希望编写脚本,以便只需要配置一次。

我正在使用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
}

请从代码中删除中断符:外部。

正在发生的事情是,第一个循环开始运行,并且只进入第二个循环一次!因为中断,并跳转到下一台计算机。

最新更新