I am trying to do cross-domain searches for members of any given group. From i can get any group in the local domain, but not from and vice versa.
using .\domSearch.ps1
This is rough code right now, but here it is:
$DomName = $args[0]
$SAMName = $args[1]
if ($DomName -eq "")
{
$DomName = "DC=dom1,DC=domain,DC=com"
}
if ($DomName -eq "")
{
$DomName = "DC=dom2,DC=domain,DC=com"
}
$searcher = new-object System.DirectoryServices.DirectorySearcher($DomName)
$searcher.filter = "(&(objectClass=group)(sAMAccountName=$SAMName))"
$user = $searcher.findall()
$tmpOutput = "userpath.tmp"
$delTmpOutput = Test-Path userpath.tmp
if ($delTmpOutput -eq $TRUE)
{
ri $tmpOutput
}
write-output $user[0].path | Out-File $tmpOutput
$ldapList = gc $tmpOutput
foreach ($ldapGroup in $ldapList)
{
$userGroup = [ADSI] $ldapGroup
$userGroup.Name |out-file members.csv
"Member,Location" |Out-file -encoding default export.csv
foreach ($member in $userGroup.member)
{
$member |Out-file -encoding default export.csv -append
}
import-csv export.csv | Select Member | Out-File tmpMembers.csv
$strReplace = @("Member","CN=","-"," {2,}")
foreach ($replace in $strReplace)
{
$new = (gc tmpMembers.csv) -replace $replace, ""
Set-Content tmpMembers.csv $new
}
gc tmpMembers.csv | where {$_ -ne ""} | out-file members.csv -append
ri export.csv
ri tmpMembers.csv
ri userpath.tmp
$a = new-object -comobject wscript.shell
$b = $a.popup("Members in all groups have been exported to members.csv",0,"AD Group Member Report",0 + 64)
}
Where am I messing up?
(p.s. using V2.0 CTP)