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

[玩转系统] PowerShell 函数:获取 ADGroupMembershipperDepartment

作者:精品下载站 日期:2024-12-14 07:27:08 浏览:15 分类:玩电脑

PowerShell 函数:获取 ADGroupMembershipperDepartment


在成长的环境中,这常常会造成完全的混乱。部门中的员工是他们不应该加入的组中的组成员。

如果有一个干净整洁的Active Directory环境,那么你就可以完美地使用数据库进行查询。例如,部门字段中有部门名称,则可以查询该用户的组成员身份。本文介绍了一个高级功能,允许您查询每个部门的组成员资格。

活跃董事部门属性

我要说的是:

[玩转系统] PowerShell 函数:获取 ADGroupMembershipperDepartment

让我们继续讨论我的函数的示例。

获取 ADGroupMembershipperDepartment

此高级功能可以在您的 PowerShell 环境中实现。最后一部分将详细介绍这一点。

命令在行动。它显示给定部门的所有用户及其组成员身份,包括嵌套组。

[玩转系统] PowerShell 函数:获取 ADGroupMembershipperDepartment

仅定义了一个参数:Department。最后,系统会要求您打印此内容。确保您的系统上安装了默认打印机。

功能


function Get-ADGroupMembershipperDepartment {

[CmdletBinding()]

param
 (
 [Parameter(Position=0)]
 [String]$Department
 )

$user=Get-ADUser -filter {department -eq $Department} -Properties name,department

$result=@()

foreach ($u in $user)

{

$userdn = $u.DistinguishedName
$Nested = "(member:1.2.840.113556.1.4.1941:=$userdn)"
$a=Get-ADGroup -LDAPFilter $Nested -ResultPageSize 1000

$x=($a.Name) -join "`r`n"

$result+=New-Object -TypeName PSObject -Property ([ordered]@{

'User'=$u.Name
'Department'=$u.department
'Groups'=$x

})

}

$result | Format-Table -AutoSize -Wrap
$read=Read-Host -Prompt 'Do you want to print this? (Y/N)'
If ($read -eq 'Y')
{$result | Format-Table -AutoSize -Wrap | Out-Printer}

}

如果你喜欢它,就让它永久。

使其永久化

如果您喜欢我的方法,请打开 PowerShell ISE。将该函数复制到您的 ISE 会话中。在 C:\Program Files\Windows PowerShell\Modules 中创建一个文件夹,并将代码保存为 psm1 文件。确保您的文件名和文件夹名称匹配。

[玩转系统] PowerShell 函数:获取 ADGroupMembershipperDepartment

[玩转系统] PowerShell 函数:获取 ADGroupMembershipperDepartment

从现在起,每次启动 PowerShell 时,PowerShell 都会加载自定义模块。

致谢

非常感谢那些伟大的人通过 technet 上的嵌套组帮助我摆脱了灾难。特别感谢理查德·穆勒(Richard Mueller)的帖子对我帮助很大。

https://social.technet.microsoft.com/Forums/ie/en-US/f238d2b0-a1d7-48e8-8a60-542e7ccfa2e8/recursive-retrieval-of-all-ad-group-memberships-of-a-user?论坛=ITCG

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

取消回复欢迎 发表评论:

关灯