当您从“控制面板”中打开“运行播发程序”时,您将获得所有软件。
我正在尝试使用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
答案 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