繁体   English   中英

如何 pipe Where-Object output 进入 Azure AD 组

How to pipe Where-Object output into Azure AD Group

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

组成员注册 MFA 后,我需要从一个 Azure AD 组中删除该成员并将其添加到另一个组。

当我运行脚本时,我没有收到任何错误,但它没有按预期删除/添加成员。 我可以验证它是否通过了第 2 步,但之后什么也不做。 我相信我在第 3 步开始时需要一个Select-Object

如果成员已注册 MFA,脚本将从 A 组中删除成员并将其移至 B 组。

  1. Get-AzureADGroupMember -ObjectId "7d23abf4-4e30-4092-b4e6-a5297addad75" |

  2. Where-Object {$_.StrongAuthenticationMethods -ne $null} |

  3. Add-AzureADGroupMember -ObjectId "24db4ad9-8fe0-45f6-a71a-79b76395105a" |

  4. Remove-AzureADGroupMember -ObjectId "7d23abf4-4e30-4092-b4e6-a5297addad75"

     Step 1. Get member of Group A Step 2. Where member has enrolled in MFA Step 3. Add member to Group B Step 4. Remove member from Group A

脚本应审核一个 Azure 广告组 (A) 以查看哪些成员已注册 MFA,从该组中删除已注册的成员,并将其移至另一个组 (B)。

1 个回复

您的脚本有两个问题。

1. | 表示 powershell 管道,不是这样的用法,更多详细信息请参见此链接

2. AzureAD powershell 中的User实体没有StrongAuthenticationMethods属性,它存在于MSOnline powershell中,所以你需要使用它来代替。

这是给您的示例,请确保您已使用Install-Module MSOnline安装了MSOnline powershell 模块。

注意:您需要确保用户尚未在 B 组中,否则您会收到错误消息The group member you are trying to add is already a member of this group

Connect-MsolService

$groupA = "<objectid of group A>"
$groupB = "<objectid of group B>"

#get the users(whose GroupMemberType is 0) in the group A
$userids = (Get-MsolGroupMember -GroupObjectId $groupA | Where-Object {$_.GroupMemberType -eq '0'}).ObjectId
#add the MFA-enrolled user to A and remove from B
foreach($item in $userids){
    $user = Get-MsolUser -ObjectId $item
    if($user.StrongAuthenticationMethods.Count -ne "0"){
        Add-MsolGroupMember -GroupObjectId $groupB -GroupMemberType User -GroupMemberObjectId $item
        Remove-MsolGroupMember -GroupObjectId $groupA -GroupMemberType User -GroupMemberObjectId $item

    }else{
        Write-Host The user $user.DisplayName is not MFA-enrolled.
    }
}
2 从变量中过滤输出(where-object)

我正在使用以下行在服务器上运行测试: 我想创建一个像这样的变量: 并将其发送到Where-Object。 我可以这样做吗? 苏尼:) 编辑:经过一些R / T(研究和尝试:))我发现我可以这样做: 但是..我真的很想知道是否可以通过以下方式指定要排除的服务: ...

3 如何使用 Where-Object 过滤 output?

我正在尝试获取有关 Windows 2019 上的应用程序证书的一些信息(名称和到期日期): Output: 但是,如果我只想获得那些在不久的将来(例如 30 天)到期的证书怎么办? 试图像这样过滤,但没有成功: (输出相同) ...

4 如何将输出从 grep 管道传输到 cp?

我有一个工作grep命令,可以选择满足特定条件的文件。 如何从grep命令中获取选定的文件并将其通过管道传输到cp命令中? cp端以下尝试都失败了: cp:在“/home/ubuntu/data/lidar/tmp-ajp2/”之后缺少目标文件操作数,请尝试“cp --help”以获取 ...

5 如何将通信输出通过管道传输到文件?

我已经使用 comm 命令来比较两个文件,但我无法将其通过管道传输到第三个文件: 我该怎么做呢? 文件已经排序。 (comm file1 file2 工作并打印出来) 样本输入: 文件 1: 文件2: 通信文件 1 文件 2:有效 ...

2012-02-08 19:21:45 7 8143   unix
7 从 Get-AzResource 修剪 ResourceId | Where-Object { } - Azure

我正在尝试更新使用 where-object 过滤器生成的资源数组上的标签,用于仅选择未标记的资源。 由于 ResourceId 为空,Update-AzTag 失败,但是如果我根据名称过滤资源,则该命令可以正常工作。 我注意到很多时候 ResourceId 只是被修剪,缺少最后 10 个字符。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM