Benutzer mit den meisten Antworten
Zusätzliches Objekt-Value wird nicht vollständig ausgegeben

Frage
-
Hallo Zusammen,
ich möchte von bestimmten Gruppen im AD, den Namen,Info(da steht der File-Pfad drin), Members sammeln und ausgeben
Folgendes habe ich zusammen-gescriptet:
$BERGroups = Get-ADGroup -Filter * -Properties * -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" $BERList = foreach ($BERGroup in $BERGroups){ Get-ADGroup -Identity $BERGroup -Properties * |select info, name, GroupMembers |ForEach-Object { [Array]$_.GroupMembers = Get-ADGroup $BERGroup -Properties members |select -ExpandProperty members | foreach {Get-ADObject $_ |select -ExpandProperty name} $_ } } $BERList |select GroupMembers
da ich von den Members nicht den DN haben möchte, habe ich ein neuen Value "GroupMembers" für das Objekt erstellt und befüllt. Wenn ich mir nun "$BERList" ausgeben lasse, funktioniert erstmal alles aber bei allen Gruppen, die mehrere Members enthält wird es immer so abgekürzt.
{Prüg, Astrid, Born, Heike, Jahn, Doeco, Schmid, Jens...}
Dies möchte ich natürlich nicht haben. Doch wie kann ich das verhinden. Anschließend möchte ich dies auch in eine .CSV exportieren aber da steht dann bei denn Members mit mehr als ein Wert nur noch "System.Object[]" drin. :-/Kann jemand helfen? Oder ist mein Ansatz völlig falsch und es gibt einen besseren?
Habe auch schon mit|Format-Table -Wrap -AutoSize
rumprobiert aber leider ohne Erfolg
VG, Thomas
- Bearbeitet Digiflex Mittwoch, 28. November 2012 14:29
Antworten
-
Hier die Lösung..ist einfach nur eine etwas abgewandelte Form von deinem Script, Peter. Nicht sonderlich performant aber es funzt!! =)
$BERGroups = Get-ADGroup -Filter * -Properties info -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" $BERList = foreach ($BERGroup in $BERGroups){ Get-ADGroupMember $BERGroup | ForEach-Object { $Member = $_ Switch ($Member.objectClass) { 'user' {$Member | Get-ADUser | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},@{Name='Info';Expression={$BERGroup.Info}},Name,@{Name='Type';Expression={'User'}}} 'group' {$Member | Get-ADGroup -Properties info | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},@{Name='Info';Expression={$BERGroup.Info}},Name,@{Name='Type';Expression={'Group'}}} } } } $BERList| Export-Csv "C:\Temp\BERFileAccesslist.csv" -NoTypeInformation
Danke für die Unterstützung!!! Immer wieder super und lehrreich hier! :)
VG, Thomas
Alle Antworten
-
Hallo Thomas!
Die Attribute info und GroupMembers kommen mir etwas seltsam vor!
Normaler weise heißt das Attribut für die Mitglieder einer Gruppe Members und nicht GroupMembers !
Gib mal folgendes ein damit du siehst was dir eine Gruppe überhaupt liefert:
Get-ADGroup 'GruppenNameHierEingeben' -Properties * | select *
Ich bekommen dann die Attribute die ich weiterverwenden kann:
CanonicalName
CN
Created
createTimeStamp
Deleted
Description
DisplayName
DistinguishedName
dSCorePropagationData
GroupCategory
GroupScope
groupType
HomePage
instanceType
isDeleted
LastKnownParent
ManagedBy
member
MemberOf
Members
Modified
modifyTimeStamp
Name
nTSecurityDescriptor
ObjectCategory
ObjectClass
ObjectGUID
objectSid
ProtectedFromAccidentalDeletion
SamAccountName
sAMAccountType
sDRightsEffective
SID
SIDHistory
uSNChanged
uSNCreated
whenChanged
whenCreated
PropertyNames
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum! -
So ?
$BERGroups = Get-ADGroup -Filter * -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" foreach ($BERGroup in $BERGroups){ Get-ADGroupMember $BERGroup | where { $_.objectClass -like 'user' } | Get-ADUser | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},Name,Surname,GivenName } # <- zum exportieren das Kommentarzeichen löschnen ;-) | Export-Csv '\\Pfad\zur\csv\datei.csv' -NoTypeInformation
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Bearbeitet Peter Kriegel Mittwoch, 28. November 2012 16:54
-
Hi Peter,
ich versteh das nicht, ich sehe dein Kommentar wieder erst heute früh , obwohl du schon vor 17 Std. geantwortet hast..irgengendwas scheint hier faul zu sein :-/
Back to the topic..
Du hast völlig recht..Groupmembers gibt es nicht..dieses wurde selbst erstellt. Durch den
| select info, name, GroupMembers
werden die bereits bekannten Attribute genommen sowie eine leere "Attributhülle" "GroupMembers" erstellt. Dies wird dann im zweiten Schritt gefüllt.
[Array]$_.GroupMembers = Get-ADGroup $BERGroup -Properties members |select -ExpandProperty members | foreach {Get-ADObject $_ |select -ExpandProperty name}
Das bereits exestierende Attribut "Members" gibt mir zwar alle Members an aber eben in einem Format (DN), das ich nicht möchte. Daher habe ich den Weg versucht, den ich hier angegeben habe :)
Ich versuche nun mal deinen Vorschlag, der mir vom lesen schon gefällt.
VG, Thomas
PS:
Die Attribute info und GroupMembers kommen mir etwas seltsam vor!
Mit dem Befehl
Get-ADGroup -Properties * -Filter * -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" |select info
bekomme ich das Attribut "Info". Wenn man im Ad eine Gruppe öffnet, ist dies das Notizfeld.
- Bearbeitet Digiflex Donnerstag, 29. November 2012 11:03
-
Also..erste Eindruck ist Klasse. Zwei Themen habe ich dennoch:
- Weitere Gruppen-Attribut mitnehmen, ich bräuchte hier noch das Attribut "Info" . Kann man das ergänzen..Mir fehlt gerade die Syntax dafür. :-/
@{Name='Gruppe';Expression={$BERGroup.name}},
sowas funktioniert leider nicht
Select-Object @{Name='Gruppe';Expression={$BERGroup.name},Name='Pfad';Expression={$BERGroup.info}},Name,Surname,GivenName
- Wenn Gruppen in den Gruppen berechtigt sind, dann sollten die auch mit Namen angezeigt werden. Das hätte ich dann so gelöst. Schaut auch gut aus.
Get-ADGroupMember $BERGroup | Get-ADObject | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},Name
VG, Thomas
- Bearbeitet Digiflex Donnerstag, 29. November 2012 10:52
-
Die Frage ist was willst du damit erreichen?
Wenn in einer Gruppe wieder Gruppen sind dann sind in diesen Gruppen wahrscheinlich wieder User (indirekte User)!
Willst du alle User einer Gruppe haben die direkt und indirekt in einer Gruppe sind oder willst du die Gruppe einfach nur Dokumentieren? z.B. damit du Sie wieder befüllen kannst falls sie mal geleert wurde?Schau dir mal in ruhe die Attribute einer Gruppe oben an!
Meinst du mit info das Attribut Description?So ?
$BERGroups = Get-ADGroup -Filter * -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" foreach ($BERGroup in $BERGroups){ Get-ADGroupMember $BERGroup | ForEach-Object { $Member = $_ Switch ($Member.objectClass) { 'user' {$Member | Get-ADUser | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},Name,Surname,GivenName,@{Name='Type';Expression={'User'}},@{Name='Info';Expression={$_.Description}}} 'group' {$Member | Get-ADGroup | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},Name,Surname,GivenName,@{Name='Type';Expression={'Group'}},@{Name='Info';Expression={$_.Description}}} } } } # <- zum exportieren das Kommentarzeichen löschen ;-) | Export-Csv '\\Pfad\zur\csv\datei.csv' -NoTypeInformation
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Bearbeitet Peter Kriegel Donnerstag, 29. November 2012 12:12
-
Die Gruppen in "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" (ca. 20 stck) sind im Filesystem berechtigt. Ich möchte jetzt nur wissen welche Gruppen/ User auf diesen Files nun berechtigt sind. Die Auswertung soll nicht rekursiv erfolgen.
Bezüglich des Info Attributs. Dies wird dir in der Shell nur angezeigt , wenn es befüllt ist. Schau's dir mal an ist wirklich so. Einfach mal eine Gruppe nehmen und in dem Notesfeld (unter den GroupScops etc) was eintragen und dann nochmal alle Attribute in der Shell abfragen. Dann siehst du auch ein Info Attribut ;)
- Bearbeitet Digiflex Donnerstag, 29. November 2012 13:15
-
Sorry meine Frage... Welche Shell meinst du denn ? Die PowerShell in der Konsole ?
Das Feld Info ist definitiv das Attribut Description!?
Siehe hier:
http://www.dacomsys.de/2012/08/mit-powershell-spezielle-ad-attribute-aendern/
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Bearbeitet Peter Kriegel Donnerstag, 29. November 2012 13:32
-
Jupp, ich meine die Powershell.
In deinem Link wird sich aber auf User-Objekte bezogen und nicht auf Gruppen-Objekte.
Schau mal hier:
http://allcomputers.us/image/1111/Modify%20a%20Group%20Object%20General%20Properties%20and%20Modify%20a%20Group%20Object%20Scope_1.jpgDas Notes-Feld ist in der Powershell das "Info"-Attribut. Dies wird aber bei einem Get-ADGroup nur angezeigt, wenn es befüllt ist. Hoffe wir finden heute noch zusammen ^^
In diesem Feld steht der physikalische Pfad drin (händig selber eingetragen!), wo die Gruppe berechtigt ist. Daher möchte ich dies mit auslesen.
- Bearbeitet Digiflex Donnerstag, 29. November 2012 13:48
-
Auch hier vermute ich dass es das Attribut Description ist ! Da Notes (so heißt das in dem Bild) nur die englische Bedeutung von Anmerkung = Description ist!
Ich habe hier weder bei Usern noch bei Gruppen irgendwo (Shell oder ISE) ein Attribut Info oder Notes !Sorry da kann ich dir nicht helfen!
Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!- Bearbeitet Peter Kriegel Donnerstag, 29. November 2012 14:51
-
Hier die Lösung..ist einfach nur eine etwas abgewandelte Form von deinem Script, Peter. Nicht sonderlich performant aber es funzt!! =)
$BERGroups = Get-ADGroup -Filter * -Properties info -SearchBase "OU=Groups_DFS,OU=DE,OU=COMPANY,DC=test,DC=local" $BERList = foreach ($BERGroup in $BERGroups){ Get-ADGroupMember $BERGroup | ForEach-Object { $Member = $_ Switch ($Member.objectClass) { 'user' {$Member | Get-ADUser | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},@{Name='Info';Expression={$BERGroup.Info}},Name,@{Name='Type';Expression={'User'}}} 'group' {$Member | Get-ADGroup -Properties info | Select-Object @{Name='Gruppe';Expression={$BERGroup.name}},@{Name='Info';Expression={$BERGroup.Info}},Name,@{Name='Type';Expression={'Group'}}} } } } $BERList| Export-Csv "C:\Temp\BERFileAccesslist.csv" -NoTypeInformation
Danke für die Unterstützung!!! Immer wieder super und lehrreich hier! :)
VG, Thomas
-
Schön das du es noch hin gekriegelt hast ! ;-)
Ich habe nun gelernt das es das Attribut Info wirklich gibt!Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
German ? Come to German PowerShell Forum!