当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-MgUser -过滤器示例

作者:精品下载站 日期:2024-12-14 13:38:42 浏览:15 分类:玩电脑

Get-MgUser -过滤器示例


[玩转系统] Get-MgUser -过滤器示例

Get-MgUser 命令带有过滤功能,就像 Get-ADUser 一样。

但是,如果您期待 Get-ADUser LdapFilter 开关或 PowerShell 表达式语言 Filter 开关的强大功能,那么您将会大吃一惊……

Get-MgUser 过滤器使用 OData v3,该版本过于复杂且缺乏大量功能。

遗憾的是,在大多数情况下,更好的选择是检索所有用户帐户并在本地执行过滤。

以下部分将演示 Get-MgUser Filter 选项的一些用法。

如果您更喜欢简单的 GUI 而不是复杂的 PowerShell 脚本,请查看 Easy365Manager:

Easy365Manager 是 Active Directory 用户和计算机的一个管理单元,整合了 Office 365 和 Active Directory 管理

使用 Easy365Manager,您可以直接从 AD 执行所有日常 Office 365 管理。这包括通常需要 PowerShell 的任务,例如日历权限的配置,如上面的示例所示。

请在此处查看完整的 Easy365Manager 功能列表。

在此下载功能齐全的 30 天试用版。

Get-MgUser 过滤器运算符

Get-MgUser 命令的过滤器开关基于 oData v3.0 过滤构建。

这与 Get-ADUser -Filter 使用的 PowerShell 表达式语言筛选器相反,后者又不同于非常基本的 Get-MsolUser -SearchString 筛选器选项。

如果微软的各个开发团队能够协调他们的努力,那就太好了……?

下面详细介绍了 Get-MgUser 过滤可用的基本运算符:

OperatorMeaningSample expression eqEqual toDisplayName eq ‘Tycho Brahe’ andAndCountry eq ‘Germany’ and Department eq ‘Marketing’ orOrCountry eq ‘Germany’ or Country eq ‘France’

请注意,Like 过滤器不可用 - 无法搜索 MS Graph 用户属性中的子字符串,这严重限制了用例。 Not 过滤器等也是如此。

唯一可用的通配符搜索类型是“startswith”过滤器。

此外,还可以使用“any”过滤器搜索多值属性的值。

然而,这样做的一个重要限制是无法搜索复杂的对象类型属性,例如“AssignedPlans”。

Get-MgUser 过滤器示例

下面您将找到 Get-MgUser 过滤器语法的一些基本示例。

Get-MgUser -Filter "DisplayName eq 'Tycho Brahe'"
Get-MgUser -Filter "Country eq 'Germany' and Department eq 'Marketing'"
Get-MgUser -Filter "Country eq 'Germany' or Country eq 'France'"
Get-MgUser -Filter "startswith(displayName,'Hans')"
Get-MgUser -Filter "proxyAddresses/any(p:startswith(p,'smtp:hans'))"

但正如文章开头提到的:

Get-MgUser Filter 参数的用例非常有限。在大多数情况下,您被迫检索所有用户并使用 PowerShell 表达式语言过滤器在本地执行过滤,例如:

Get-MgUser -All | Where-Object {$_.DisplayName -like "*hans*"}
Get-MgUser -Property AssignedLicenses,AssignedPlans,DisplayName -All | Where-Object {$_.AssignedPlans.Service -eq "exchange"} | ft DisplayName

尽管这种方法在大型环境中可能表现不佳,但它提供了更多的选项和灵活性。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯