首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用powershell搜索打印队列

使用powershell搜索打印队列
EN

Stack Overflow用户
提问于 2021-12-01 16:37:19
回答 1查看 784关注 0票数 0

我正在编写一个快速的代码字符串,它允许我搜索特定的打印服务器及其内容,比如打印机。我想要做的是,一旦获得打印机信息,就能够使用端口名找到特定的打印机,在本例中,端口名是一个IP地址,不太确定是否可能,但我没有找到一个命令,它允许我使用这些值定义搜索。

代码语言:javascript
复制
    Get-Printer -computerName "server01"|select-object -Property Name, PortName 

名称PortName

Printer01 X.XXX.x

Prnter02 X.XX.XX.XX

是否有一种方法可以使用Get-打印机命令找到打印机,并使用端口名来查找特定的打印机?

EN

回答 1

Stack Overflow用户

发布于 2021-12-04 14:17:09

我只是更详细地解释@JeffZeitlin非常正确的答案。

Get-打印机-Get打印机cmdlet检索计算机上安装的打印机列表.您还可以使用Get-打印机检索单个打印机的属性,然后将该信息用作其他cmdlet的输入。

Get成员cmdlet获取对象的成员、属性和方法。

代码语言:javascript
复制
Get-Printer | get-member

Get-打印机-选择-对象-Select选择对象或对象集的指定属性。它还可以选择唯一对象、指定数量的对象或数组中指定位置的对象。

代码语言:javascript
复制
Get-Printer | select-object -Property Name, PortName

Get-打印机-选择-对象--Where从传递给它的对象集合中选择具有特定属性值的对象。例如,您可以使用Where对象cmdlet来选择在特定日期之后创建的文件、具有特定ID的事件或使用特定版本Windows的计算机。

代码语言:javascript
复制
Get-Printer | select-object -Property Name, PortName | where PortName -eq "PORTPROMPT:"

Get-打印机-ComputerName

代码语言:javascript
复制
Get-Printer -ComputerName $env:Computername | select-object -Property Name, PortName | where PortName -eq "PORTPROMPT:"

脚本示例Get-打印机

代码语言:javascript
复制
$server = "$env:Computername"
$printersportnames = Get-Printer -ComputerName $server | select-object -ExpandProperty PortName
#Write-Host $printersportnames

$results = New-Object System.Collections.ArrayList # Empty Array

ForEach ($printerportname in $printersportnames) {
    $printerportname = $printerportname.ToString()
    #Write-Host $printerportname
    $output = Get-Printer -ComputerName $server | where-object {$_.PortName -eq $printerportname}
    
    $x = $output.Name
    $y = $output.PortName
    $z = $output.CommunicationStatus
    $a = $output.OperatingStatus
    
    $Object = New-Object PSObject   
    $Object | Add-Member -Name 'Name' -MemberType Noteproperty -Value $x
    $Object | Add-Member -Name 'PortName' -MemberType Noteproperty -Value $y
    $Object | Add-Member -Name 'CommStatus' -MemberType Noteproperty -Value $z
    $Object | Add-Member -Name 'OperStatus' -MemberType Noteproperty -Value $a
    
    $results += $object
    
}

$results
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70187968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档