考虑以下数组:
$users = 'igor', 'max', 'andrew'
$server_admins = 'john', 'andrew', 'li', 'alex'
如果$users
的任何成员在$server_admins
,我需要警报 在上面的例子中,由于来自$users
的"安德鲁",它将是正确的
我应该使用Compare-object
吗?要不?如果是 - 如何?
有几个正确的答案。有些比其他的更简单、更干净。任何最适合您的数据的方法。
$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
# Using Compare-Object
Compare-Object $users -DifferenceObject $server_admins -IncludeEqual | Where sideindicator -eq "==" | Select-Object -ExpandProperty InputObject
# Using -contains and where
$users | Where-Object{$server_admins -contains $_}
将其中任何一个放入Foreach-Object
并发出警报。可能我会选择后一个选项,因为它更简洁,同样易于理解。
您可以使用-in
或-contains
做一些事情,例如:
$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
$users | % {
if($_ -in $server_admins)
{
'alert'
}
}
要使用单个 if 命令进行测试:
$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
If ( @($users | Where-Object{$server_admins -contains $_ }).Length){"yes"}