打印Powershell Groupmembers [英] Print out Powershell Groupmembers

查看:58
本文介绍了打印Powershell Groupmembers的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙计

我正在尝试写一个Powershellscript,将所有组成员(站在txt中)读入我的csv中的一列。

但我有问题,我的csv中的输出只是每组的最后一个成员打印出300x左右








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



Greetz Dirkules

推荐答案

zusammen = Liste von allen Usern
zusammen = Liste von allen Usern #


namen = Liste von allen bereits vorgekommenden UserUnids
namen = Liste von allen bereits vorgekommenden UserUnids #


gruppen =听von allen bereits vorgekommenden Gruppennamen
gruppen = Liste von allen bereits vorgekommenden Gruppennamen


这篇关于打印Powershell Groupmembers的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆