0
我當前使用腳本來顯示分配給安全組的所有計算機。我目前使用的腳本是一個VB腳本:在具有特定安全組的OU中列出對象
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獲取,廣告組不支持管道輸入或輸入不匹配。最後,它列出了這兩個團體,以及他們的尊敬的名字。
我想獲得計算機名稱以及每個計算機的專有名稱,該計算機是構建OU中的「我的組」或「我的其他組」的成員以及該OU下的每個OU。我更喜歡在PowerShell中使用它的方法,但我也可以使用VB腳本。
(很抱歉,如果我錯過任何重要的信息,這是我第一次發佈。)
大多數情況下,這種方法效果很好。當我試圖在一個大組中執行時,我只是遇到了以下錯誤:'FullyQualifiedErrorId:超出了此請求的大小限制,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember',我不知道要如何破壞它進一步下跌。 – Rikai