nutzer123456 0 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai (bearbeitet) Könnte mir bitte jemand folgendes erklären. Ich würde gern ein paar Attribute durch Get-ADUser auslesen und als CSV exportieren. Die Ziel OU ist als Variable definiert. In der Ausgabe bleiben aber einige Felder leer bzw. erhalten in der CSV den Eintrag "Microsoft.ActiveDirectory.Management.ADPropertyValueCollection". $UserNames = Get-ADUser -filter * -searchbase $OUPathFHS -Properties * | Select displayname, SAMAccountName, mail, badpwdcount, proxyadress, skriptPath, whencreated, memberof $UserNames | export-csv -path ... wenn ich einen Nutzer direkt anspreche funktioniert es. get-aduser -Identity mustermann -Properties * | select name, badPwdCount, LastBadPasswordAttempt Wie bekomme ich den Befehl für alle Nutzer in der OU zum laufen. Vielen Dank schon mal im voraus. bearbeitet 27. Mai von nutzer123456 Zitieren Link zu diesem Kommentar
testperson 1.677 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai Hi, wenn die Felder leer bleiben, enthalten die Felder evtl. keine Daten? "skriptPath" müsste bspw. auch "scriptPath" sein und "proxyadress" wäre "proxyaddresses". Wenn du "Microsoft.ActiveDirectory.Management.ADPropertyValueCollection" in die CSV bekommst, liegt das daran, dass die Felder halt mehrere Werte enthalten. "ProxyAdresses" enthalt halt alle E-Mail-Adressen und "memberOf" alle Gruppen. Was hast du denn später mit den Daten vor bzw. ist evtl. CSV auch einfach das falsche Format. Gruß Jan 1 Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 27. Mai Autor Melden Teilen Geschrieben 27. Mai Die CSV soll dann in einer Exceltabelle ausgewertet werden um für nicht administrative Personen Informationen liefern. Im groben funktioniert das auch, aber es hakt halt an einigen Attributen. Die zwei Schreibfehler habe ich mal korrigiert. Das hat den Fehler für die Proxyadressen beseitigt. scriptPath gibt aber weiterhin nicht den gewünschten Eintrag zurück, sondern bleibt leer. Irgendwie scheint er aber mit dem Filter *searchbase OU nicht klar zu kommen. Einzeln mit -identity funktionieren alle Attributabfragen. Vielleicht mag er auch die Geschichte mit den Variablen nicht. Ich will ja auch verstehen warum mir die eine Abfrage die Werte ausgibt und die Andere nicht. Zitieren Link zu diesem Kommentar
testperson 1.677 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai Dann liefere doch einmal etwas mehr vom Script oder das Script. Ich bleibe aber dabei, dass es erstmal schwierig wird, entsprechende Arrays wie "memberOf" oder "proxyAddresses" direkt in CSV zu bekommen. Vielleicht wäre es einfacher den Output als HTML darzustellen (oder du erstellst direkt ein Excel Workbook aus PowerShell). Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai Geht schon, wenn man sich festlegt, wie das im CSV dann entahalten sein soll. Kann man mit calculated properties bei Select-Object recht einfach lösen. Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 27. Mai Autor Melden Teilen Geschrieben 27. Mai Ich werde mir mal die Geschichte mit dem Excel Workbook aus Powershell angucken, calculated Properties muss ich auch erstmal gucken wie man das genau macht. Wenn Ihr hierzu direkt Links mit einer Anleitung hättet nehme ich das gern mit. Schon mal Danke! Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai In kurz aus dem Gedächtnis: $ADUser | Select-Object -Property Name, @{ Name="Mitgliedschaften"; Expression={ $_.MemberOf -Join "`r`n" }} https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_calculated_properties?view=powershell-7.4 Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 27. Mai Autor Melden Teilen Geschrieben 27. Mai Wenn ich das richtig verstehe erzeugt -join einen langen String. (hier mit Zeilenumbrüchen) Dieser String soll dann als Neue definierte Property ausgegeben werden. (Mitgliedschaften) ich habe jetzt folgendes getestet: $UserNames = Get-ADUser -filter * -searchbase $OUPathFHS $UserNames | Select-Object -property Name, @{ Name = "Mitgliedschaften" Expression = { $_.memberof -Join "`r`n" } } das gibt mir eine Tabelle mit den Namen zurück. Die spalte Mitgliedschaften bleibt aber leer. Ich hab das auch noch mit scriptpath anstelle von memberof getestet. Bleibt aber leer. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 27. Mai Melden Teilen Geschrieben 27. Mai Versuch doch statt dem Zeilenumbruch erstmal ein einfaches Zeichen wie z.B. "/" oder "|" oder "," oder ";". Dann solltest Du die Gruppen-Mitgliedschaften als "Trennzeichen-separierte" Liste innerhalb einer Zelle wiederfinden. Übrigens, statt "$UserNames" würde ich ein weniger missverständlichen Variablennamen empfehlen. Sowas wie "$UserList" oder "$UserArray". Schließlich enthält die Variable ja nicht nur Namen. vor 2 Stunden schrieb nutzer123456: $UserNames = Get-ADUser -filter * -searchbase $OUPathFHS Da die Attribute "MemberOf" und "ScriptPath" usw. nicht zum Default Retrurn Set gehören, musst Du sie explizit mit "-Properties MemberOf, ScriptPath, ... " usw. anfordern. Zitieren Link zu diesem Kommentar
cj_berlin 1.315 Geschrieben 28. Mai Melden Teilen Geschrieben 28. Mai (bearbeitet) Ich weiß nicht ob es das Problem ist, aber in Deinem allerersten Code-Snippet selektierst Du "sKriptPath" anstelle von "sCriptPath". Damit bleibt die Property "scriptPath" immer leer. bearbeitet 28. Mai von cj_berlin Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 28. Mai Autor Melden Teilen Geschrieben 28. Mai auch mit den Änderungen gibt es keine Ausgabe. Zitieren Link zu diesem Kommentar
cj_berlin 1.315 Geschrieben 28. Mai Melden Teilen Geschrieben 28. Mai Zeig doch mal den Code, der diese Ausgabe erzeugt. Zitieren Link zu diesem Kommentar
nutzer123456 0 Geschrieben 28. Mai Autor Melden Teilen Geschrieben 28. Mai $Userarray = Get-ADUser -filter * -searchbase $OUPathFHS -Properties * | Select name, displayname, SAMAccountName, mail, badpwdcount, scriptPath, whencreated, memberOf $Userarray | Select-Object -property Name, mail, scriptpath, whencreated, badpwdcount, @{ Name = "Mitgliedschaften" Expression = { $_.memberOf -Join ";" } } $userarray | ft name und mail gibt mir eine Ausgabe. Der Screenshot ist von dem Teil der nicht geht. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 28. Mai Melden Teilen Geschrieben 28. Mai Ich habe Dein Schnipsel getestet und bei mir funktioniert es wie erwartet ... ok, ScriptPath ist bei uns auch nicht gefüllt, aber der Rest zeigt genau das, was erwartet wird ... 🤷🏼♂️ Zitieren Link zu diesem Kommentar
Beste Lösung nutzer123456 0 Geschrieben 28. Mai Autor Beste Lösung Melden Teilen Geschrieben 28. Mai (bearbeitet) ... hab meine Dummheit gefunden. Bin zwar mit dem Admin angemeldet hab die ISE aber nicht explizit als Admin gestartet. Dann geht das auch. Ich depp Danke an alle! bearbeitet 28. Mai von nutzer123456 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.