You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建多打印服务器网络打印机映射脚本?PowerShell脚本报错求助

解决PowerShell安装网络打印机的错误及通用脚本创建方法

现有脚本的错误修复

你的脚本核心问题有两个:

  1. 网络路径格式错误:打印机共享路径需要以双反斜杠\\开头,而你定义的$FullServerName只有单个反斜杠,导致路径无效。
  2. 属性解析错误:在字符串中直接使用$Printer.Name时,PowerShell会将$Printer解析为对象,然后把.Name当成普通字符串拼接,而非提取对象的Name属性,需要用子表达式$()包裹属性访问。

修改后的完整脚本:

# 获取服务器名称
$Server = Read-Host "Enter name of Server"
# 构建正确的服务器共享前缀(双反斜杠)
$FullServerPrefix = "\\$Server"

# 初始化序号,获取打印机列表并添加序号列
$i = 0
$printers = Get-Printer -ComputerName $Server | 
    Select-Object @{Name="Item";Expression={$i++}}, Name
# 格式化输出列表
$printers | Format-Table -AutoSize

# 获取用户选择并验证输入
do {
    $selectedNumber = Read-Host "Select Printer to install by typing the number"
    # 验证输入是否为有效整数
    if (-not [int]::TryParse($selectedNumber, [ref]$null)) {
        Write-Host "请输入有效的数字序号!"
    }
} while (-not [int]::TryParse($selectedNumber, [ref]$null))

# 匹配选中的打印机
$selectedPrinter = $printers | Where-Object {$_.Item -eq [int]$selectedNumber}

if ($selectedPrinter) {
    # 构建完整的打印机共享路径,用子表达式正确提取打印机名称
    $printerPath = "$FullServerPrefix\$($selectedPrinter.Name)"
    try {
        Add-Printer -ConnectionName $printerPath
        Write-Host "打印机 '$($selectedPrinter.Name)' 安装成功!"
    }
    catch {
        Write-Host "安装失败:$($_.Exception.Message)"
    }
}
else {
    Write-Host "未找到对应序号的打印机!"
}

关键修改说明

  • 移除全局变量:改用局部变量避免全局环境污染,代码更安全。
  • 修正路径前缀:\\$Server符合Windows网络共享的路径规范。
  • 属性解析修正:$($selectedPrinter.Name)确保PowerShell正确解析对象的Name属性。
  • 输入验证:添加循环验证用户输入是否为有效整数,避免无效输入导致的错误。
  • 错误处理:用try/catch捕获安装过程中的异常,给出明确的错误提示。

创建映射不同打印服务器网络打印机的通用脚本

核心步骤

  1. 获取打印服务器的打印机列表
    使用Get-Printer -ComputerName <ServerName>命令,需要确保执行脚本的用户有访问目标打印服务器的权限。
  2. 展示带序号的打印机列表
    通过Select-Object添加自定义序号列,方便用户快速选择。
  3. 处理用户输入
    验证输入的有效性,确保是合法的序号,避免无效输入导致脚本崩溃。
  4. 安装网络打印机
    构建完整的打印机共享路径(\\服务器名\打印机名),使用Add-Printer -ConnectionName <路径>命令完成安装。

通用脚本扩展建议

  • 支持多服务器选择:可以先列出常用的打印服务器,让用户选择目标服务器,再展示对应打印机列表。
  • 批量安装:允许用户输入多个序号(如1,3,5),批量安装选中的打印机。
  • 状态检查:安装前先检查打印机是否已存在,避免重复安装报错。
  • 保存常用配置:将常用打印服务器名称保存到配置文件,下次运行时直接选择,无需重复输入。

内容的提问来源于stack exchange,提问作者Linder Leiva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:41:08