shell - 通过powershell将打印机添加到打印服务器
问题描述
仅当尚未使用该打印机名称和打印机端口时,我才想将打印机及其端口添加到打印服务器。
到目前为止我有这个
$prnt = Import-Csv C:\scripts\printer.csv
foreach ($printer in $prnt) {
$var = Get-Printer
If (($var.name -contains $printer.Printername) -and ($var.portname -contains
$printer.IPAddress))
{
Write-Host "$printer exist!" -ForegroundColor Blue
}
else
{
Add-PrinterPort -ComputerName Printsrv01 -Name $printer.IPAddress -
PrinterHostAddress $printer.IPAddress
Add-Printer -ComputerName Printsrv01 -Name $printer.Printername -
DriverName $printer.Driver -PortName $printer.IPAddress -Location
$printer.Location
}
}
问题主要出在我的“if”语句上。它捕获打印机名称,但不捕获端口号/IP。(端口号是 ip)。而且我还认为我的 if 语句正在比较 csv 文件中的整个值数组,而不仅仅是我想要的数组中的特定值。任何帮助,将不胜感激。
CSV 文件是这样设置的 在此处输入图像描述
解决方案
尝试这个:
$prnt = Import-Csv C:\scripts\printer.csv
$printers = (Get-Printer).Name
$ports = (Get-PrinterPort).PrinterHostAddress
foreach ($printer in $prnt)
{
If (($printers -contains $printer.Printername) -or ($ports -contains $printer.IPAddress))
{
Write-Host "$printer exist!" -ForegroundColor Blue
}
else
{
Add-PrinterPort -ComputerName Printsrv01 -Name $printer.IPAddress -PrinterHostAddress $printer.IPAddress
Add-Printer -ComputerName Printsrv01 -Name $printer.Printername -DriverName $printer.Driver -PortName $printer.IPAddress -Location $printer.Location
}
}
推荐阅读
- reactjs - 在使用 MSW 和 RTK Query 时使用 Jest 进行测试会导致测试出现奇怪的错误
- npm - 无法为组注册表设置正确的 npm 配置
- android - 如何在 Android 应用程序的对话框中打开 Chrome 自定义选项卡
- oracle - 无法访问 plsql 函数返回的对象类型
- typescript - 如何在 d.ts 文件中为变量进行类型定义
- python - Python:使用 Selenium 单击第一个谷歌结果
- wordpress - Wordpress 网站被黑——重定向到另一个网站
- pug - 在 PugJS 的日历事件列表中为每个月添加一个 HTML 元素
- sql - 使用 Iseries 上的 SQL DB2 从 WEB 获取 XML
- ruby-on-rails - 如何将实例方法转换为关联?