Powershell从AD计算机列表的SQL查询结果返回匹配行

时间:2017-01-22 00:35:31

标签: powershell filtering

如果以前曾提出类似的问题,我会失败,道歉。我所有的搜索都是空的。

如果$Results中的$servers匹配服务器名称,如果有帮助,可以使用

创建SQL查询结果
#Change OS to OperatingSystem, shortened for screen readability.
$servers = Get-ADComputer -LDAPFilter "(|(OS=*2003*)(OS=*2000*))" | Select -expand Name

我尝试了这个:

$servers | ForEach-Object { $Results.Server -match $_}

但输出最后包含多个重复的项目。

我还考虑过生成一个巨大的SQL查询,因此只需要运行一个查询,例如:

$SqlQuery = @'
SELECT swName AS [Server], swSchedule as [Schedule]
 FROM SW_TABLE
WHERE (swSchedule = 'Weekly' OR swSchedule = 'SCCM - Weekly' OR swSchedule = 'Monthly')
AND swRootObjectType = 'Server'
AND swName = 'Server'
AND swName = 'Server'
AND swName = 'Server'
AND swName = 'Server'
'@

1 个答案:

答案 0 :(得分:1)

根据$Results是否包含$servers名称属性来过滤Server数组:

$Results |Where-Object { $servers -contains $_.Server }