首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell匹配来自2个具有类似通配符的容器的输入

Powershell匹配来自2个具有类似通配符的容器的输入
EN

Stack Overflow用户
提问于 2017-10-03 08:29:54
回答 1查看 315关注 0票数 0

刚接触过powershell我有点被困住了。

我想用WMI获取所有SCCM任务,并将它们与图像名称匹配。

代码语言:javascript
复制
$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.name is的Windows 2016 输出 Windows 2016 x64 Windows 10企业x64

我试过使用这个foreach循环,但似乎无法工作,这篇文章有7个提示,应该只有4个提示,3个Windows 10和1个Windows服务器2016

代码语言:javascript
复制
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)*"} 
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-03 09:03:48

编辑:问题发生一点变化后的,下面是新代码:

代码语言:javascript
复制
$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
        } 
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46540304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档