运维必备:远程添加打印机脚本(powershell)

$computerName = Read-Host "输入计算机名" 
# 创建一个新的PowerShell会话(如果需要远程执行) 
$session = New-PSSession -ComputerName $computerName  -Credential 域名\公司ad域控管理账号
# 定义候选列表(用户可以选择)  
$share = @(  
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\兄弟8530DN打印机更新驱动\Y15C_C1_UL_PP-asa-inst-H2\xmlpaper"; ip = "打印机ip"; Drivers="Brother MFC-8530DN XML Paper"; Number="1"},
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\兄弟8530DN打印机更新驱动\Y15C_C1_UL_PP-asa-inst-H2\xmlpaper"; ip = "打印机ip"; Drivers="Brother MFC-8530DN XML Paper"; Number="2"},
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\Epson_L8188";ip = "10.0.57.251"; Drivers="EPSON L8180 Series";Number="3"},
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\兄弟8530DN打印机更新驱动\Y15C_C1_UL_PP-asa-inst-H2\xmlpaper"; ip = "打印机ip"; Drivers="Brother MFC-8530DN XML Paper"; Number="4"},
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\佳能2206AD\DRIVERS";ip = "10.0.57.249"; Drivers="Canon iR2006/2206 UFRII LT";Number="5"},
    @{path = "\\共享盘地址\公共资源\信息化部共享文件\打印机驱动\兄弟8530DN打印机更新驱动\Y15C_C1_UL_PP-asa-inst-H2\xmlpaper"; ip = "打印机ip"; Drivers="Brother MFC-8530DN XML Paper"; Number="6"}
)  
Write-Output "**************************请选择对应的打印机******************************"
Write-Output "1.  3栋夹层兄弟8530DN(打印机ip)"
Write-Output "2.  3栋6楼兄弟8530DN(打印机ip)"
Write-Output "3.  3栋夹层联合办公室Epson_L8188(打印机ip)"
Write-Output "4.  3栋夹层联合办公室兄弟8530DN(打印机ip)"
Write-Output "5.  3栋夹层联合办公室佳能2206AD(打印机ip)"
Write-Output "6.  3栋4楼兄弟8530DN(打印机ip)"
Write-Output "****************************************************************************"
# 提示用户选择共享文件夹路径  
$selectedShare = $null  
while (-not $selectedShare) {  
    $userInput = Read-Host "请选择一个打印机编号 (输入编号)"  
    # 尝试将输入解析为编号  
    $selectedShare = $share | Where-Object { $_.Number -eq $userInput }  
    if (-not $selectedShare) {  
        Write-Host "无效的选择,请重新输入。"  
    }  
}  
  
  
# 在远程会话中执行命令  
Invoke-Command -Session $session -ScriptBlock {  
    param (  
        $SharePath,  
        $PrinterDriverName,  
        $PrinterPortName,
        $PrinterName
    )  
  
    # 创建新的PSDrive  
    New-PSDrive -Name y -PSProvider FileSystem -Root $SharePath -Credential 公司域名\域账号
  
    # 设置当前位置到新的PSDrive  
    Set-Location y:\  
  
    # 添加驱动程序  
    # 注意:这里假设.inf文件在根目录下,如果有子目录需要调整路径  
    pnputil /add-driver ./*.inf  
    # 添加打印机驱动  
    Add-PrinterDriver -Name $PrinterDriverName  
  
    # 添加打印机端口  
    Add-PrinterPort -Name $PrinterPortName -PrinterHostAddress $PrinterPortName  
  
    # 添加打印机  
    Add-Printer -Name $PrinterName -DriverName $PrinterDriverName -PortName $PrinterPortName 
     # 检查添加是否成功  
    if ($?) {  
        Write-Host "打印机 $printerName 安装成功!"  
    } else {  
        $error[0].Exception.Message  
        Write-Host "打印机 $printerName 安装失败"  
    } 
} -ArgumentList $selectedShare.path,  $selectedShare.Drivers, $selectedShare.ip,"$($selectedShare.Drivers) on $($selectedShare.ip)"

  

1.管理员打开powershell

2.运行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,这是一个简单的安装打印机PowerShell 脚本: ``` $printerName = "PrinterName" $driverName = "DriverName" $portName = "IP_Address:Port" $driverPath = "C:\Path\To\Driver" $infPath = "$driverPath\DriverName.inf" # 安装驱动程序 Add-PrinterDriver -Name $driverName -InfPath $infPath # 安装打印机 Add-Printer -DriverName $driverName -Name $printerName -PortName $portName ``` 替换 `PrinterName`,`DriverName`,`IP_Address:Port` 和 `C:\Path\To\Driver` 为你的打印机的名称,驱动程序的名称,IP 地址和端口以及驱动程序的实际路径即可。 ### 回答2: 使用PowerShell编写一个安装打印机脚本如下: ``` # 定义打印机名称和驱动程序路径 $printerName = "PrinterName" $driverPath = "C:\PrinterDriver" # 创建打印机端口 $port = ([wmiclass]'Win32_TcpIpPrinterPort').CreateInstance() $port.Name = "IP_" + $printerName $port.Protocol = 1 $port.HostAddress = "192.168.1.100" # 替换为打印机的IP地址 $port.PortNumber = 9100 $port.SNMPEnabled = $false $port.Put() # 安装打印机驱动程序 $driverInfPath = $driverPath + "\driver.inf" $driverName = "Printer Driver" $driver = ([wmiclass]'Win32_PrinterDriver').CreateInstance() $driver.Name = $driverName $driver.InfName = $driverInfPath $driver.Put() # 创建打印机对象 $printer = ([wmiclass]'Win32_Printer').CreateInstance() $printer.DriverName = $driverName $printer.PortName = $port.Name $printer.DeviceID = $printerName $printer.Location = "Office" # 打印机位置 $printer.Network = $false $printer.Shared = $false $printer.Put() Write-Output "打印机安装完成。" ``` 请注意,以上脚本假设你已将打印机驱动程序的.inf文件放在了指定的路径下。你需要替换以下变量值: - $printerName:打印机的名称 - $driverPath:打印机驱动程序的路径 - $port.HostAddress:打印机的IP地址 - $printer.Location:打印机的位置 脚本会创建一个新的打印机端口、安装打印机驱动程序,并创建打印机对象以完成打印机的安装。执行脚本后,会输出"打印机安装完成"的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值