Mag 11 Geschrieben 28. Juni 2012 Melden Teilen Geschrieben 28. Juni 2012 Hallo Leute, leider komme ich mit der Suche im Netz nicht wirklich zu einer Hilfestellung. Ich als powershell anfänger versuche gerade ein script aufzubauen mit einer schleife. Ich habe eine Liste an abteilungen (personal, einkauf, techn. service usw.) in einer varibale $abt-liste. nun möchte in der for schleife pro $abt aus $abt-liste eine abfrage generieren. Das ergebnis dieser abfrage würde ich gerne in eine variable schreiben die z.b. dann heisst $einkauf. Nun dachte sich mein wirres Hirn, das könnte in der Art gehen: $($abt) = get-ADUser $person -Properties ....(was hier hin soll ist auch noch nicht ganz fertig) Es gibt 2 Probleme. Das mit den Klammern geht nicht. Welche Zeichen muss ich da verwenden, dass er mir erst die variable abt ausgibt und dann das $ davor packt? Das Zweite. Ja ich habe z.b. leerzeichen in verschiedenen Ausgaben von $abt, das wollte ich mit einem .replace.... in den Griff kriegen. Falls jemand für mich nen Lösungsansatz hätte, wäre ich sehr dankbar ;) Grüße Mag Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 28. Juni 2012 Melden Teilen Geschrieben 28. Juni 2012 Der Sinn, Variablen "dynamisch" zu benennen, erschliesst sich mir, ehrich gesagt, nicht so ganz... Was soll damit erreicht werden? Ich würde eher mit Array-Variablen o.ä. arbeiten. Zitieren Link zu diesem Kommentar
Mag 11 Geschrieben 28. Juni 2012 Autor Melden Teilen Geschrieben 28. Juni 2012 Hmm, es wäre ja nicht willkürlich dynamisch, sondern eine begrenzte menge, die ich kenne. Es geht insgesamt um ausgeschiedene Benutzer. Ich möchte verschiedene Daten aus dem AD sammeln und mir die später pro Abteilung ausgeben lassen, damit ich die Verantworltichen informieren kann. Nach dieser Schleife dachte ich mir dann, könnte ich prima auf die Inhalte der Variablen zugreifen. Alternativ kann ich ja auch dynamisch ein out-file oder export erstellen lassen und die dann wieder einlesen. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 28. Juni 2012 Melden Teilen Geschrieben 28. Juni 2012 get-help about_foreach Wo hast du bei dir eine Schleife? Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 29. Juni 2012 Melden Teilen Geschrieben 29. Juni 2012 (bearbeitet) Mag, du solltest dir mal Hashtables ansehen http://technet.microsoft.com/en-us/library/ee692803.aspx Blub bearbeitet 29. Juni 2012 von blub Zitieren Link zu diesem Kommentar
Mag 11 Geschrieben 29. Juni 2012 Autor Melden Teilen Geschrieben 29. Juni 2012 Hallo, danke für den Tip, ich les ihn mir gerade durch. Die Schleife ist um diese Zeile. Ich habe nicht alles gepostet, da ich gerade erst beginne und das alles noch so unvollständig ist. Es war so: foreach ($person in $userliste) { foreach ($abt in $abtliste) { ($($abt + '-liste') = Get-ADUser $person -Properties Enabled, CanonicalName, EmailAddress, DistinguishedName, SAMAccountName, Company, ProfilePath, HomeDirectory | where { $_.CanonicalName -like ($abt + '*') } | Tee-Object -FilePath ('c:\test\' + $abt + '.txt') } } JA in dem Code sind Fehler. Das soll nur meine Frage verdeutlichen, was ich ungefähr vor hatte mit dieser dynamischen Variable (z.B. $einkauf-liste, $personal-liste,... ) Grundgedanke war, ich habe eine Userliste mit ausgeschiedenen Mitarbeitern und eine Liste aller Abteilungen. Die genaue Herkunft der User anhand des AD Objektes kann ich eigentlich nur am canonicalname festmachen, daher diese vorgehensweise. Habe es nun etwas umgestellt, dass ich die AD nur einmal abfrage (damit die nicht unnötig penetriert wird). Ich arbeite dann weiter mit einer export-csv Datei, aber mein Problem bleibt irgendwie ;) Ich würde gern den gefunden User aufgrund seiner Abteilung mit allen dieser Abteilung in eine textdatei schreiben. Habe es nun so: % { Get-ADUser $_ -Properties Enabled, CanonicalName, DistinguishedName, SAMAccountName, Company, ProfilePath, HomeDirectory, Name, EmailAddress, homeMDB } | select Enabled, CanonicalName, DistinguishedName, SAMAccountName, Company, ProfilePath, HomeDirectory, Name, EmailAddress, homeMDB | export-csv "c:\test\ausgabe.txt" -NoTypeInformation Und nun mache ich einen import-csv und will dann mit den daten weiterarbeiten. 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.