列出用户及其所属的所有组的脚本

拉鲁卜

我已经启动了一个脚本,该脚本将AD中的用户名与CSV中的特定职位进行比较,然后列出用户所属的所有组(以及组内的组)。

我已经检查了第一个注释下的功能,该功能可以按预期工作,列出了用户的所有组。

脚本的下一部分无法按预期工作,当我尝试将用户列表的输出用作函数的变量时,我仅获得所有用户所属的组列表,而不是组和用户。

现在我得到以下结果:

组别1
组2
组3
组2
组3
组4

我的理想选择是:

用户成员
---- -------- 
Bob Group1,Group2,Group3 .... 
Jim Group2,Group3,Group4 ....

代码:

#Function to recursively check account for group membership
function Get-SubGroups ($account)
{
    $ErrorActionPreference = "SilentlyContinue"

    $groups = Get-ADPrincipalGroupMembership $account
    $allGroups =$null

    while ($groups)
    {
        $allGroups += $groups.Name
        $groups = $groups.Name | Get-ADPrincipalGroupMembership   
    }
    $allGroups
}

#CSV with list of job titles and command to get the first user with a job title
$titles = Get-Content 'B:\JobTitles.csv'

#Command to get the list of groups for each user
$users = foreach ($title in $titles)
{
    Get-ADUser -Filter 'Title -Like $title' -Properties Name, SamAccountName, MemberOf, Title | select -First 1
}

foreach ($user in $users)
{
    Get-SubGroups $user | Write-Output
}
马克西米利安·埃蒂(Maximilian Etti)

你的意思是这样的吗:

#Function to recursively check account for group membership
function Get-SubGroups ($account)
    {
    $ErrorActionPreference = "SilentlyContinue"

        $groups = Get-ADPrincipalGroupMembership $account
        $allGroups =$null

        While($groups)
    {
        $allGroups += $groups.Name
        $groups = $groups.Name | Get-ADPrincipalGroupMembership   
    }
        $allGroups
    }

#CSV with list of job titles and command to get the first user with a job title
$titles = Get-Content 'B:\JobTitles.csv'

$users = @()

foreach ($title in $titles)
{
    $users += Get-ADUser -Filter 'Title -Like $title' -Properties Name, SamAccountName, MemberOf, Title | select -First 1
} 

$users | Format-Table -Wrap @{Expression={$_.Name};Label="User";width=25},
@{Expression={[string[]](Get-SubGroups $_) -join ' '};Label="MemberOf"} | Write-Output

输出将是:

User                      MemberOf                                                                                                                         
----                      --------                                                                                                                         
SomeUser                  Group1 Group2 Group3
SomeUser2                 Group2 Group3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取属于一个组的用户列表及其所属的所有组名

用于获取用户及其所属组的详细信息的 Powershell 脚本

Bash脚本,对于给定的组名,打印所有用户及其所在的组,包括给定的用户

列出用户所属的所有组。使用macOS和CentOS

脚本检查用户在bash中所属的所有组

获取所有用户及其所有图像

授予组中所有用户写入目录及其所有子目录的权限

删除用户及其所有文档 Firestore

列出所有用户及其食谱

Microsoft Graph:在一个请求中列出所有用户及其组

使用 microsoft graph 在一个请求中列出所有用户及其组

如何找到用户所属的所有组?(LDAP)

返回用户所属的所有Active Directory组的列表,以string []

如何列出UNIX用户所属的组?

Linux 仅列出用户所属的选定组?

将所有Azure AD组及其所有者导出到csv文件

列出目录及其所有子目录中具有100行以上的文件

如何从终端列出硬盘驱动器及其所有分区(包括大小)?

列出所有异常及其发生次数的脚本

退出程序及其所有流程

如何列出所有用户及其活动的进程数

列出所有人类用户及其进程数

如何在Inspector编辑器脚本中绘制列表及其所有项目?

显示javascript按钮及其所属的对象

使用ldap3查询用户所属的所有活动目录组

如何使字典中的每个“用户”成为键,以及它们所属的所有“组”的值?

如何使用Okta的API获取用户所属的所有组?

接收用户所属的所有成员资格组的 SID?

Redshift:如何列出组中的所有用户