刚接触过powershell我有点被困住了。
我想用WMI获取所有SCCM任务,并将它们与图像名称匹配。
$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 2012 R2 X64 Windows 10企业x64 USMT完全操作系统 升级1703 Windows 10企业x64 USMT硬链接 Windows 7企业x64 en-US Windows 10企业x64 1703 en-US$ImagePackage.nameis的Windows 2016 输出 Windows 2016 x64 Windows 10企业x64
我试过使用这个foreach循环,但似乎无法工作,这篇文章有7个提示,应该只有4个提示,3个Windows 10和1个Windows服务器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)*"}
}
}发布于 2017-10-03 09:03:48
编辑:问题发生一点变化后的,下面是新代码:
$SiteCode = "SiteCode"
$SiteServer = "Server"
$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)
Foreach($Task in $TaskSequence){
foreach($Image in $ImagePackage){
if($Task.Name -like "*$($Image.Name)*" -or $Image.Name -like "*$($Task.Name)*"){
$Task
#I have no idea what you want to do with this object
}
}
}https://stackoverflow.com/questions/46540304
复制相似问题