# ========================================================= # MAX Windows Toolkit - 安装网络打印机 # 中文界面,统一风格 # ========================================================= $Common = "C:\Setup\windows\lib\common.ps1" if (Test-Path $Common) { . $Common } Write-Header "安装网络打印机" Show-AdminWarn Write-Info "1. 按 IP 地址添加打印机" Write-Info "2. 按 UNC 路径添加共享打印机" Write-Info "3. 显示已安装的打印机" Write-Info "" $Choice = Read-Host "请选择" Write-Line switch ($Choice) { "1" { $PrinterIP = Read-Host "输入打印机 IP 地址" $PrinterName = Read-Host "输入打印机名称" if ([string]::IsNullOrWhiteSpace($PrinterIP) -or [string]::IsNullOrWhiteSpace($PrinterName)) { Write-Err "打印机 IP 或名称不能为空" Pause-Max exit 1 } $PortName = "IP_$PrinterIP" try { Add-PrinterPort -Name $PortName -PrinterHostAddress $PrinterIP -ErrorAction Stop Write-OK "打印机端口已创建: $PortName" Write-Info "如果未安装打印机驱动,请在控制面板中手动添加打印机" Write-Info "您也可以先安装打印机驱动,然后重新运行此脚本" } catch { Write-Err "创建打印机端口失败" Write-Muted $_.Exception.Message } } "2" { $UNC = Read-Host "输入共享打印机路径(如 \\server\printer)" if ([string]::IsNullOrWhiteSpace($UNC)) { Write-Err "UNC 路径不能为空" Pause-Max exit 1 } try { rundll32 printui.dll,PrintUIEntry /in /n "$UNC" Write-OK "共享打印机安装命令已执行" } catch { Write-Err "共享打印机安装失败" Write-Muted $_.Exception.Message } } "3" { try { Get-Printer | Format-Table Name, DriverName, PortName, PrinterStatus -AutoSize } catch { Write-Err "获取打印机列表失败" Write-Muted $_.Exception.Message } } default { Write-Err "无效选项" } } Write-OK "脚本执行完成" Write-Line Pause-Max