Jump to content

Powershell - Variablen dynamisch erzeugen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...