【发布时间】:2017-10-03 08:29:54
【问题描述】:
powershell 新手,我有点卡住了。
我想用 WMI 获取所有 SCCM Tasksequnece,并将它们与图像名称匹配
$TaskSequence = Get-WmiObject -Namespace "root\SMS\site_$($SiteCode)" -Class SMS_TaskSequencePackage -ComputerName $SiteServer
$ImagePackage = Get-WmiObject -Namespace "root\SMS\site_$($SiteCode)" -Class SMS_ImagePackage -ComputerName $SiteServer
$TaskSequence.name的输出是
Windows Server 2012 R2 X64
Windows 10 企业版 x64 USMT 完整操作系统
升级 1703
Windows 10 企业版 x64 USMT 硬链接
Windows 7 Enterprise x64 zh-CN
Windows 10 企业版 x64 1703 zh-CN
Windows 服务器 2016
$ImagePackage.name的输出是
Windows Server 2016 x64
Windows 10 企业版 x64
我尝试了这个 foreach 循环,但似乎无法让它工作,这篇文章有 7 个提示,应该只有 4 个提示,3 个 Windows 10 和 1 个 Windows server 2016
foreach ($TS in $TaskSequence ) {
Get-WmiObject -Namespace "root\SMS\site_$($SiteCode)" -Class SMS_TaskSequencePackage -ComputerName $SiteServer |
ForEach-Object{
Get-WmiObject SMS_ImagePackage -Namespace "root\SMS\site_$($SiteCode)" -ComputerName $SiteServer | Where-Object { $_.name -like "*$($TS.Name)*"}
}
}
【问题讨论】:
标签: powershell foreach match wildcard