Wie kann ich eine Hashtabelle als Schlüssel-Wert-Paare aufzählen / eine Hashtabelle nach einer Sammlung von Schlüsselwerten filtern?

Anmerkung der Redaktion Diese Frage hat eine komplizierte Geschichte, aber läuft darauf hinaus:
* So lernst duaufzähle die Einträge einer Hashtabelle durch sein Schlüssel-Wert-Paare, sehendie akzeptierte Antwort.
* So lernst duFilte eine Hashtabelle von einemSammlung von Schlüsselwerten, sehendie andere Antwort.

Ich glaube, ich bin wieder auf das XY-Problem gestoßen. Meine erste Frage betraf das Filtern einer Hash-Tabelle. Ich habe festgestellt, dass das Filtern vor dem Erstellen der Hash-Tabelle einfacher ist. Frage beantwortet, richtig?

Nein, das Y-Problem hat jeden Schlüssel geloopt und die Werte verwendet, bei denen @briantist mir geholfen hat.

Mein Ziel ist es, die Schlüsselnamen, die Zeitstempel sind, zu durchlaufen und eine Aufgabe unter Verwendung des Schlüsselnamens als Aufgabenname und Auslöser zu planen.

Ich erstelle eine Hash-Tabelle aus einer CSV-Datei mitGroup-Object -AsHashTable -AsString -edit, es ist erwähnenswert, dass das Filtern der CSV vor dem Erstellen der HashTable die Dinge im @ nur einfacher machPipeline oder script.

Als Beispiel

Import-CSV (ls -path D:\ -Filter source*.csv | sort LastWriteTime | Select -Last 1).FullName |
 where {$_.TimeCorrected -ne 'ManualRebootServer'} |
 group TimeCorrected -AsHashTable -AsString

Ich versuche, die Schlüsselnamen zu durchlaufen und kann die Schlüsselnamen anzeigen, indem ich Folgendes verwende:

$var = Import-Csv csv123.csv | Group-Object Value1 -AsHashTable -AsString

foreach ($key in $var.Keys){"The key name is $key"}

#Create a scheduled task named and triggered based on the HashTable keyname
#test test test
foreach ($key in $var.keys){IF($key -ne 'ManualRebootServer'){"Register-ScheduledJob"}}

Ich bin mir einfach nicht sicher, wie ich die Werte von den Schlüsseln erhalten soll, an denen ich interessiert bin.

Ich habe die folgenden Arbeiten gefunden, aber nur, wenn ich manuell einen Schlüsselnamen eingebe. Ich bin mir nur nicht sicher, wie ich beide Schleifen kombinieren soll.

($val.GetEnumerator() | Where {$_.key -eq '06-11-16 18:00'} | ForEach-Object { $_.value }).Server

Antworten auf die Frage(4)

Ihre Antwort auf die Frage