Click here to Skip to main content
15,891,745 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hey Guys
I am trying to write a Powershellscript, that read out all Members of the groups(Which are standing in the txt)into a column in my csv.
But i have the Problem that the output in my csv is that just the last member of each group print out around 300x




Clear-Host
#$zusammen = Liste von allen Usern
#$namen = Liste von allen bereits vorgekommenden UserUnids
#$gruppen = Liste von allen bereits vorgekommenden Gruppennamen
$zusammen = New-Object System.Collections.ArrayList($null)


#Pfad zur txt/csv Datei wo die Gruppen enthalten sind
$path = "C:\gruppen.txt"
#Inhalt der Datei laden
$inpt = Get-Content $path
$la = 1
#Objekt für die Ausgabe wird definiert
foreach ($temp in $inpt)
	{
		if($la -eq 1)
		{
			$objAusgabe = New-Object -TypeName PSObject
			$objAusgabe | Add-Member –MemberType NoteProperty –Name $temp -Value $temp
			$la = 2
		}
		else
		{
			$objAusgabe | Add-Member –MemberType NoteProperty –Name $temp -Value $temp
		}
	}
	$mitte = New-Object System.Collections.ArrayList($null)

foreach ($temp in $inpt)
{
#$usr = Gruppenname
$usr = $temp

#Funktion zum Suchen der User
function Findusers($objparam)
{
	
	
	foreach($ent in $objparam)
	{
		
		#$objmitte = New-Object -TypeName PSObject | Select UNID
		$objuser1 = New-Object System.DirectoryServices.DirectoryEntry("LDAP://"+$ent)
		#usrtype gibt durch den samaccounttype an ob es sich um einen user oder eine gruppe handelt
		#wenn es eine gruppe ist wird die if-schleife durchlaufen sonst die else schleife
		$usrtype = $objuser1.sAMAccountType
		if($usrtype -eq 268435456 -or $usrtype -eq 268435457)
		{
					"`t`t" + $objuser1.name + " -- Gruppe "
					$Gabe = [string]$objuser1.name
					$mitte.Add($Gabe) |Out-Null	
		}
		else
		{
					"`t`t"+$objuser1.cn.ToUpper()+" -- "+$objuser1.sn+","+$objuser1.givenname
					$unidgroß = [string]$objuser1.cn
					$gabe = $unidgroß.ToUpper()
					$mitte.Add($gabe) |Out-Null
		}
	}
	$test = $mitte
	foreach($tempo in $test)
	{
		$objAusgabe.$temp = $tempo
		$zusammen.Add($objAusgabe)|Out-Null
	}
}

$str = $usr + ":-" 
$str
Echo "---------------------------------------------"
$objItem = @()
$strFilter = "(&(objectCategory=Group)(name=$usr))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree" 
$colResults = $objSearcher.FindAll() 
foreach ($objResult in $colResults)
{  
	$objItem = $objResult.GetDirectoryEntry()
	$objmem = $objItem.member
	Findusers($objmem)
}
}
$zusammen | ConvertTo-Csv | Out-File C:\test.csv -Encoding unicode 


Greetz Dirkules
Posted
Comments
notjustme 11-Jul-13 11:02am    
I'm finding it quite cumbersome to read through that code with all the german words.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900