使用 Get-Content filename.JSON | 加载了两个 JSON 文件ConvertFrom-Json
一个对象名称 $SubscriberEmail
具有属性名称 email
第二个对象名称$ADEnabledUsersEmail
有一个名为Work Email
的属性
尝试比较两个对象并找到不在 $ADEnabledUsersEmail
对象中的对象并写出名称。
这是当前的 foreach 方法,但似乎多次输出所有电子邮件。
foreach($S in $SubscriberEmail ){
foreach($A in $ADEnabledUsersEmail){
if($A.'Work Email' -eq $S.email ){
Write-Host "User is active"
}else{
Write-Host $s.email
}
}
}
最佳答案
如果您想过滤数组
,您可以使用Where-Object
或.Where()
方法或带有右侧comparison operator的循环。即:-notin
、-notcontains
:
$SubscriberEmail.email.where({ $_ -notin $ADEnabledUsersEmail.'Work Email' })
$SubscriberEmail | Where-Object {
$ADEnabledUsersEmail.'Work Email' -notcontains $_.email
}
foreach($email in $SubscriberEmail.email)
{
if($email -notin $ADEnabledUsersEmail.'Work Email')
{
$email
}
}
还有更多过滤数组
的选项,只需在 Google 上搜索filtering arrays powershell即可。
关于Powershell比较两个对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69792810/