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

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

作者:精品下载站 日期:2024-12-14 08:40:53 浏览:16 分类:玩电脑

PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com


在本文中,我们将回顾如何使用 PowerShell 比较和逻辑运算符,这将帮助我们根据我们定义的特定条件过滤 PowerShell 输出结果。

PowerShell 的强大功能 |系列文章

PowerShell 的力量文章系列,包括以下三篇文章:

  • PowerShell 的强大功能 |第 1/3 部分
  • PowerShell 的强大功能 |第 2/3 部分
  • PowerShell 的强大功能 |第 3/3 部分

在下一节中,我们将回顾如何使用 PowerShell“获取”命令 + 比较和逻辑运算符的组合来从特定对象类数组中获取对象的“子组”。

在我们开始之前,先快速总结一下:

使用“Get”命令有以下三种“主要”场景:

  1. 获取有关对象的特定实例的信息。例如约翰邮箱
  2. 获取有关“对象类”的信息。例如,命令 Get-Mailbox 将显示有关所有现有邮箱的信息。
  3. 从特定对象类获取有关对象“子组”的信息。

例如,我们要显示有关标题为“管理员”的用户邮箱的信息。

换句话说,我们要求 PowerShell 为我们执行以下“步骤”:获取所有现有用户的列表,
“扫描”或“检查”名为“Title”的每个用户属性,并找到一个等于“Manger”的值 显示“回答”此条件的邮箱列表(“Title”属性中的值为“Manager”)。

比较和逻辑运算符

通过使用“逻辑条件”实现的“过滤”或“关联”到对象“子组”的选项。使用以下方式创建的“条件”:比较和逻辑运算符。
以下列表显示可用的 PowerShell 比较和逻辑运算符:

PowerShell 比较运算符

  • -lt - 小于
  • -le - 小于或等于
  • -gt - 大于
  • -ge - 大于或等于
  • -eq - 等于
  • -ne - 不等于
  • -喜欢——喜欢;使用通配符进行模式匹配

PowerShell 逻辑运算符

  • -不是
  • -和
  • -或者

地点对象

我们与比较运算符和逻辑运算符一起使用的附加组件是:Where-Object

Where-Object cmdlet 与比较和逻辑操作相结合,使我们能够创建一个描述所需“条件”的 PowerShell 语句。 ”

注意:在接下来的示例中,我们将使用 cmdlet-Where 来使用Where-Object cmdlet 的简化版本。

带有比较和逻辑运算符的PowerShell句子结构

包含“条件”的 PowerShell 句子的示例可能是:

Get-Mailbox | Where {$_.Property -“Value"}
  • 在 PowerShell 句子的第一部分中,我们使用“Get”命令以及我们所相交的对象类的名称。在我们的示例中,对象类是:Mailbox
  • 在 PowerShell 句子的第二部分中,我们使用Where cmdlet 以及逻辑运算符来仅“获取”(过滤)满足特定条件的对象。

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

我们可以在 PowerShell 句子中添加额外的“部分”,这使我们能够定义将显示哪些属性。

PowerShell 将命令语法:

Get-Mailbox | Where {$_.Property -“Value"} | Select Property1,Property2
  • 在 PowerShell 语句的第三部分中,我们指定要显示的属性

[玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

使用 PowerShell 逻辑和比较运算符示例

使用比较和逻辑运算符时,我们拥有的可能性是无限的。我们可以“编写”一个包含一个条件的简单 PowerShell 句子,也可以编写一个由条件“组合”构建的“复杂”PowerShell 句子。
在下一节中,我们将演示我们的方法的不同变体。使用比较和逻辑运算符。

示例 1 - 使用比较运算符“eq ”

描述:Exchange Online 使我们能够创建不同类型的“邮箱”,例如用户邮箱、资源邮箱和共享邮箱。

任务:我们想要显示所有用户邮箱的列表(我们想要排除或“不显示”其他类型的邮箱)。

比较和逻辑运算符:我们将使用等于 (eq) 运算符,因为我们希望仅查找(过滤)值等于“UserMailbox”的邮箱。

PowerShell命令语法:

Get-Mailbox | Where {$_.RecipientTypeDetails -eq “UserMailbox"}

PowerShell句子结构

第一部分:通过使用 Get-Mailbox cmdlet,我们“从 PowerShell 请求”:查找所有现有邮箱类型。 (管道字符的第一部分与第二部分“分开”)。

第二部分——在第二部分中我们描述“标准”或“条件”。

  • 通过使用管道字符,我们“告诉”PowerShell:“从第一部分获取输入并用此输入“做某事”。
  • 我们使用的“标准”必须用花括号括起来。

    • 属性名称:我们使用的属性名称是:“RecipientTypeDetails”。 $_ 符号用于: 表示默认对象(即通过管道传输的对象)。
  • 值名称 - 值名称为:“UserMailbox”
  • 我们使用的比较运算符是“eq”。这是该术语的缩写形式:平等。当使用“eq”比较运算符时,我们正在寻找“完全匹配”。
  • [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    注意:在接下来的示例中,我们使用“Get”命令来:过滤有关具有特定值的“用户对象”的信息。这些示例基于 Get-User cmdlet。

    示例 2 - 使用比较运算符“EQ”显示来自特定部门的用户

    任务:我们希望显示在“销售”部门工作的所有 Office 365 用户的列表。

    比较和逻辑运算符:我们使用比较运算符“eq”,因为我们想要获得“精确匹配”。我们要创建的标准\条件是:仅当该用户在部门属性中具有特定值(字符串)“sales”时,才显示用户名。

    PowerShell命令语法:

    Get-User | Where {$_.Department -eq "Sales"}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    示例 3 - 使用以下组合:逻辑运算符“OR”+比较运算符“EQ”

    任务:我们希望显示在“销售”部门工作的所有 Office 365 用户或在“营销”部门工作的用户的列表。
    比较和逻辑运算符:为了实现此要求,我们将使用比较运算符“EQ”与逻辑运算符“OR”的组合。

    对于每个标准,我们“专用”括号,并且所有“标准”都用花括号括起来。在第一个“条件”之后,我们使用比较运算符“OR”。此命令的输出将是匹配第一个条件的用户(来自销售部门的用户)或匹配第一个条件的用户(来自营销部门的用户)。

    PowerShell命令语法:

    Get-User | Where {($_.Department -eq “Sales”) -or ($_.Department -eq “Marketing”)}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    示例 4 - 使用以下组合:逻辑运算符“AND”+比较运算符“EQ”

    任务:我们想要显示在销售部门工作的所有 Office 365 用户的列表,他们的职位是:经理。

    比较和逻辑运算符:请注意,现在“条件”不同了。我们想要显示的用户必须同时回答两个“条件”:用户应该在“销售”部门工作,并且需要有头衔:“经理”。 ”

    PowerShell命令语法:

    Get-User | Where {($_.Department -eq “Sales”) -and ($_.Title -eq “Manger”)}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    示例 5 - 使用以下组合:逻辑运算符“AND”、“OR”+ 比较运算符“EQ”

    任务:我们要显示在“销售”部门或“营销”部门工作的所有 Office 365 用户的列表,他们的头衔是:“经理”。
    比较和逻辑运算符:“条件”比较复杂,因为我们需要找到来自两个不同部门(销售部门或市场部门)的所有标题为“经理”的用户。

    PowerShell命令语法:

    Get-User | Where {($_.Department -eq “Sales”) -or ($_.Department -eq “Marketing”) -and ($_.Title -eq “Manger”)}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    示例 6 - 使用比较运算符“LIKE”

    任务:我们希望显示在销售部门工作的所有 Office 365 用户的列表。在我们的组织中,我们有 2 个销售部门:

    • 美国销售部: Seals-USA
    • 销售部位于英国:Seals-UK

    比较和逻辑运算符:从技术上讲,我们可以创建两个 PowerShell“句子”,其中一个包含条件:Department=Seals-USA,另一个包含条件的 PowerShell 句子:Department=Seals-UK。
    幸运的是,我们可以使用一种更有效的方式来“编写”这些标准。 “解决方案”可以通过使用比较运算符来实现:“LIKE”。 “LIKE”比较运算符使我们能够找到包含或具有特定字符串的值。

    在我们的示例中,我们查找以“sales”字符串开头的值,但我们“不关心”字符串的其余部分,或者换句话说:我们查找部分匹配

    当使用“LIKE”比较运算符时,我们需要添加“星号”(*)字符。星号字符充当“通配符”。当在字符串末尾使用星号字符时,PowerShell 将查找以字符串“Sales”开头的所有值。 ”

    PowerShell命令语法:

    Get-User | Where {$_.Department -like “Sales*”}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

    示例 7 - 使用比较运算符“NE”

    描述:公司总部位于美国,大部分组织用户也位于美国。此外,该公司在欧洲(西班牙、英国等)设有六家分公司

    使命:我们希望获得不在公司总部工作的所有组织用户的列表。

    比较和逻辑运算符:从技术上讲,我们可以编写一个包含六个比较运算符的PowerShell语句:“OR”来获取所需的信息。

    编写此条件的更有效选择是:使用比较运算符:“NE”(不等于)。使用比较运算符:“NE”就像使用:“反转选择”。换句话说,我们“要求”PowerShell 查找所有没有值的对象:USA。

    PowerShell命令语法:

    Get-User | Where {$_.StateOrProvince -ne “USA”}

    [玩转系统] PowerShell、Office 365、语法|PowerShell 的力量|第 3/3 部分 .com

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

    取消回复欢迎 发表评论:

    关灯