列出具有特定安全组的OU中的对象

时间:2015-09-22 15:46:22

标签: vb.net powershell active-directory active-directory-group

我目前使用脚本显示分配给安全组的所有计算机。我目前使用的脚本是一个VB脚本:

Set objGroup = GetObject("LDAP://cn=My Group,ou=Security Groups,ou=_Groups - standard,ou=city,ou=state,dc=my,dc=domain,dc=tld,")
For Each objMember in objGroup.Members
Wscript.Echo objMember.Name 
Next

此脚本可以工作并从整个域中提取“我的群组”的每个成员。这有效,但我试图过滤一下。我想通过特定的OU搜索计算机。我尝试了以下代码无济于事:

Dim objGroup
Dim objMachine
Dim objMatch

Set objGroup = GetObject("LDAP://cn=My Group,ou=Security Groups,ou=_Groups - standard,ou=city,ou=state,dc=my,dc=domain,dc=tld")
Set objMachine = GetObject("LDAP://ou=Building,ou=street,ou=city,ou=state,dc=my,dc=domain,dc=tld")

Dim c
For each c in objGroup
if c = objMachine Then
Wscript.Echo objMachine.Name
end if
next

代码执行没有错误,但我没有看到任何输出。然后我决定在PowerShell中解决这个问题。

$computer = Get-ADGroup -searchbase 'ou=Building,ou=street,ou=city,ou=state,dc=my,dc=domain,dc=tld' -Filter * ` |
Get-ADGroup -Filter {(Name -eq "My Group") -or (Name -eq "My Other Group")} ` |
Select-Object -Unique ` |
Sort-Object DistinguishedName; 
$computer | Select-Object Name, DistinguishedName; 
export-csv C:\Temp\Result.csv

这会在ISE中引发一些错误,说明cmdlet Get-ADGroup不支持管道输入或输入不匹配。最后,它列出了两组,以及它们的专有名称。

我想获得计算机名称以及每个计算机的专有名称,该计算机是" My Group"或者"我的其他小组"在Building OU中以及该OU下的每个OU。我更喜欢在PowerShell中使用它的方法,但我也可以使用VB脚本。

(对不起,如果我错过任何重要信息,这是我的第一个帖子。)

0 个答案:

没有答案