我有这部分代码:
$exception = "VM"
ForEach($item in $list) {
IF ($item -match $exception) { $invalidlist += $item }
ELSE { $validlist += $item }
}
当仅将1个项目分配给变量$exception
时,其作为意图使用。
问题是,我需要变量包含多个项目,例如:$exception = "VM","TM","TMP"
如何搜索$exception
中任何项目的匹配项?
提前致谢。
编辑:$list
是使用以下方式创建的:
$list = Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 548.00:00:00
答案 0 :(得分:1)
关于更新的评论,您的$list
是AD对象数组:
假设您关心计算机名称,您应该将Name属性添加到$item
- > $item.name
如下例所示:
*如果您只想要返回计算机名而不是完整对象,请将$ item.name也添加到无效变量中,例如$invalidlist += $item.name
$invalidlist = @()
$validlist = @()
$exception = "VM","TM","TMP"
$list = Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 548.00:00:00
ForEach($item in $list) {
## if the item in $exception are equal to the $item name you can use the contains operator
## otherwise you can use -match
IF ($exception -contains $item.name) { $invalidlist += $item }
ELSE { $validlist += $item }
}