首页 > 解决方案 > 在变量中使用 Powershell 获取默认打印机共享名称

问题描述

我正在尝试将当前默认打印机存储在 Powershell 中的一个变量中,以使用不同的打印服务器重新添加此名称。我用来存储此名称的命令是:

$default_printer = Get-WMIObject -Query " SELECT * FROM Win32_Printer WHERE Default=$true" | where{$_.Name -like "*\\*"} | select sharename

这将为我提供:

sharename
---------
WI_IT-Test

当我尝试使用以下命令设置新打印机时出现问题:

Add-Printer -ConnectionName \\printsrv01\$default_printer

我相信当我在开始时设置变量时,它还会存储字符串“sharename ---------”以及打印机的名称。我如何获取打印机名称而不是...

sharename
 ---------

任何帮助,将不胜感激!

标签: powershellautomationprinters

解决方案


Select-Object将创建一个PSCustomObject键/值。我推荐两种选择:

  1. 用于ExpandProperty仅返回 的值sharename。即... | select -expandproperty sharename
  2. 财产sharename。IEAdd-Printer -ConnectionName "\\printsrv01\$($default_printer.sharename)"

在你的情况下,你想要一个单一的财产,所以第一个选择是好的。如果您选择多个属性,则后者是要走的路。


推荐阅读