在变量中使用/Powershell 获取默认打印机共享名称

Posted

技术标签:

【中文标题】在变量中使用/Powershell 获取默认打印机共享名称【英文标题】:Get Default Printer ShareName w/ Powershell in Variable 【发布时间】:2019-03-21 20:40:22 【问题描述】:

我正在尝试将当前默认打印机存储在 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
 ---------

任何帮助将不胜感激!

【问题讨论】:

我认为您希望在选择时使用-ExpandProperty 参数。这仅选择值而不是键/值对象。即... | select -ExpandProperty sharename. 【参考方案1】:

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

    使用ExpandProperty 仅返回sharename 的值。即... | select -expandproperty sharenamesharename 属性。即Add-Printer -ConnectionName "\\printsrv01\$($default_printer.sharename)"

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

【讨论】:

谢谢。 "\\printsrv01\$($default_printer.sharename)" 减去引号是这种情况下的诀窍。 :) 再次感谢!

以上是关于在变量中使用/Powershell 获取默认打印机共享名称的主要内容,如果未能解决你的问题,请参考以下文章

将网络打印机设置为powershell中的默认打印机

Powershell 打印机安装脚本

喜欢在变量中获取 powershell 脚本的输出以在批处理文件中使用

如何在散列中获取Powershell ACL信息以便很好地打印到文件中

在 Windows IoT 核心设备上运行 powershell 脚本“.ps1”

如何在PowerShell中获取变量名称