打破弦乐

时间:2017-09-07 19:52:53

标签: powershell

当您从“控制面板”中打开“运行播发程序”时,您将获得所有软件。

我正在尝试使用PowerShell显示这些数据。这是我的代码:

$tpObject = Get-WmiObject -Namespace ROOT\ccm\Policy\Machine\ActualConfig -Class CCM_SoftwareDistribution | Select-Object -Property PKG_Manufacturer, PKG_Name, PKG_MIFVersion, PRG_ProgramID
$tpObject

这将显示所有PKG_Manufacturer,PKG_Name,PKG_MIFVersion,PRG_ProgramID 如果我这样做,

$tpObject[2]

它只会将第三行显示为1整个字符串。

我的问题:我如何打破字符串,以便显示
的值 PKG_Manufacturer PKG_Name PKG_MIFVersion“ - ”PRG_ProgramID

只需访问PKG_Manufacturer和PKG_Name

即可

TKS

1 个答案:

答案 0 :(得分:1)

如果您只想要对象的单个属性,则可以使用Object.Property语法或Select-Object -ExpandProperty

这将为PKG_Manufacturer的所有项目提供仅包含属性$tpObject的集合。以下是使用Object.Property语法的示例。

$tpObject.PKG_Manufacturer

通过使用Select-Object参数-ExpandProperty参数

进行扩展,效果相同
$tpObject | Select-Object -ExpandProperty PKG_Manufacturer

这些方法可以与数组索引或像Where-Object这样的过滤器组合,只选择对象数组的某些项。

# Get PKG_Manufacturer for only tpObject[2]
$tpObject[2].PKG_Manufacturer
# or
$tpObject[2] | Select-Object -ExpandProperty PKG_Manufacturer

$tpObject |
    Where-Object {$_.PKG_Manufacturer -eq 'ExampleManufacturer'} |
    Select-Object -ExpandProperty PKG_Name