我试图将Office365中的通讯组的所有成员分成两个组。第一个组“ Precon”过滤特定组中的用户。下一个“办公室”组将成为成员所在的办公室通讯组。最终目标是,我希望获得precon组中每个成员的办公室位置。
我尝试了几件事,但是不知道我的语法是否正确,或者我尝试的方法是否按照我认为的方式工作。
到目前为止,这就是我所拥有的
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
$groupmembers = foreach($g in Get-DistributionGroup -Filter {name -like "Precon"}) {
Get-DistributionGroupMember -Identity $g.SamAccountName | select Name
}
$office = foreach($o in Get-DistributionGroup -Filter {name -like "*Office"})
{
Get-DistributionGroupMember -Identity $o.SamAccountName | select Name
}
$match = $groupmembers | ForEach {
if ($_ -imatch $office){
Write-Output $_ "matches"
}
}
$match
任何帮助将不胜感激。
答案 0 :(得分:0)
输出是什么?
对于最后的代码块,我来看:
$match = $groupmembers | where $office -contains $_
$match
答案 1 :(得分:0)
我找到了一种可行的方法
$precon = @()
foreach($i in Get-DistributionGroup -Filter {Name -like '*Precon'}) {
$precon += ( Get-DistributionGroupMember -Identity $i.samAccountName | foreach {$_.Name} )
}
$office = @{}
foreach($i in Get-DistributionGroup -Filter {Name -like '*Office'}) {
$office[$i.name] += ( Get-DistributionGroupMember -Identity $i.samAccountName | foreach {$_.Name} )
}
$uber = @()
foreach ($key in $office.Keys) {
$preconOffice = $office[$key] | Where { $precon -Contains $_ }
foreach ($name in $preconOffice) { $uber += ( New-Object -TypeName PSObject -Prop (@{'Office' = $key ;'Name' = $name}) ) }
}
$uber