导出不在 Office 365 安全组中的用户
Export users not in an office 365 security group
我需要查找不在 Office 365 安全组中的用户。获取租户中所有用户的列表后,我不确定如何继续。
这适用于拉取用户列表
Get-MSOLUser -all | Where-Object { $_.isLicensed -eq "True"} | Select-Object UserPrincipalName | Export-Csv -path .\users.csv
我不确定从这里到哪里去。
这正是我要找的东西。
Get-MSOLUser -all | Where-Object { $_.isLicensed -eq "True",-and $_.isNotMemberofGroup "SecurityGroup"} | Select-Object UserPrincipalName | Export-Csv -path .\users.csv
Cmdlet 本身不提供此类功能,但使用 PowerShell 我们可以使用 Compare-Object
检查两个对象数组之间的差异:
- 获取所有用户:
$allUsers = Get-MSOLUser -all
- 获取您的群组成员:
$groupMembers = Get-MsolGroupMember -GroupObjectId <Your-Group-ID>
- 比较两个数组:
Compare-Object -ReferenceObject $groupMembers -DifferenceObject $allUsers -Property ObjectId
- 根据您的需要,您可以根据
SideIndicator
属性 筛选以上内容
- 通过管道将以上内容与 | 导出结果Export-CsV ...
我没有办法对此进行测试,但这应该是您使用此 pre-historic 模块应遵循的逻辑,首先获取目标组的成员列表(在本例中 ExampleGroup
) 然后你可以遍历所有按这两个条件过滤的用户:
- 用户有许可证
- 用户不是目标组的成员
$targetGroup = "ExampleGroup"
$groupMembers = Get-MsolGroup $targetGroup | Get-MsolGroupMember
Get-MsolUser -All | ForEach-Object {
if($_.isLicensed -eq $true -and $_.ObjectId -notin $groupMembers.ObjectId) {
$_
}
} | Select-Object UserPrincipalName | Export-Csv -Path .\users.csv
我需要查找不在 Office 365 安全组中的用户。获取租户中所有用户的列表后,我不确定如何继续。
这适用于拉取用户列表
Get-MSOLUser -all | Where-Object { $_.isLicensed -eq "True"} | Select-Object UserPrincipalName | Export-Csv -path .\users.csv
我不确定从这里到哪里去。 这正是我要找的东西。
Get-MSOLUser -all | Where-Object { $_.isLicensed -eq "True",-and $_.isNotMemberofGroup "SecurityGroup"} | Select-Object UserPrincipalName | Export-Csv -path .\users.csv
Cmdlet 本身不提供此类功能,但使用 PowerShell 我们可以使用 Compare-Object
检查两个对象数组之间的差异:
- 获取所有用户:
$allUsers = Get-MSOLUser -all
- 获取您的群组成员:
$groupMembers = Get-MsolGroupMember -GroupObjectId <Your-Group-ID>
- 比较两个数组:
Compare-Object -ReferenceObject $groupMembers -DifferenceObject $allUsers -Property ObjectId
- 根据您的需要,您可以根据
SideIndicator
属性 筛选以上内容
- 通过管道将以上内容与 | 导出结果Export-CsV ...
我没有办法对此进行测试,但这应该是您使用此 pre-historic 模块应遵循的逻辑,首先获取目标组的成员列表(在本例中 ExampleGroup
) 然后你可以遍历所有按这两个条件过滤的用户:
- 用户有许可证
- 用户不是目标组的成员
$targetGroup = "ExampleGroup"
$groupMembers = Get-MsolGroup $targetGroup | Get-MsolGroupMember
Get-MsolUser -All | ForEach-Object {
if($_.isLicensed -eq $true -and $_.ObjectId -notin $groupMembers.ObjectId) {
$_
}
} | Select-Object UserPrincipalName | Export-Csv -Path .\users.csv