PowerShell“白带”在这里,第一次海报。当我在这里时,我会尽量不降低这样一个乐于助人的社区的集体智商!:) 我正在运行安装了 Quest 的 PowerShell 3.0。
我的组织有一个带有多个安全组的 Active Directory OU,这些安全组都控制 VPN 访问 - 这些是在我们有命名约定之前的几天创建的(啊!)
我不希望通过“让我获得 X、Y 和 Z 的成员”来依赖名称,而是说“让我获得 OU XXX 中任何事物的成员”。
理想情况下,我也想在最后进行计数,因为最终这是为了审核“有多少用户拥有 VPN 访问权限”(尽管如果这太复杂的话,我可以将结果输出为 .CSV 或其他内容)
所以我有一些可以做这部分的部分,我只是无法想象如何将它们组合在一起。任何帮助,将不胜感激。这是我的活动部分:
返回一个特定组中的用户:
get-adgroupmember "group_of_coolness" -recursive | Select name
使用“searchbase”从用户填充的 OU 返回结果:
Get-ADUser -Filter * -SearchBase 'ou=XXX,ou=XXX,dc=XXX,dc=XXX,dc=org' -Properties GivenName, Surname, EmailAddress, Office, Company, Title, distinguishedname |
select GivenName, Surname, EmailAddress, Office, Company, Title, distinguishedname | Out-GridView
返回几个特定组的结果,但也给出一个计数(我迄今为止最先进的补丁工作^^):
$GroupMembers=(get-ADGroup -filter {(Name -eq "XXXX") -or (Name -eq "YYYY")} |
get-adgroupmember -Recursive | select distinguishedname -Unique)
$Users=foreach ($user in $GroupMembers.distinguishedname) {
Get-ADUser $user
}
$Users | Sort-Object DistinguishedName |
select name, DistinguishedName
Write-Host
Write-Host "Total Users = " $Users.count
最后一个代码片段似乎最接近我,如果我可以用“-searchbase”ou=XXX ...”替换“name -eq XXXX or YYYY”
你怎么看聪明人——我离答案很近吗?再次感谢您的任何建议,并让我知道我是否是个傻瓜并忽略了一个已经回答的线程(我发现了一些密切的电话,但没有什么很划算的)。
我很高兴看到我在这里缺少什么:)