Como enumerar uma hashtable como pares de valores-chave / filtrar uma hashtable por uma coleção de valores-chave

Nota do editor: Esta pergunta tem uma história complicada, mas resume-se a isso:
* Para aprender comoenumerar as entradas de uma hashtable pelo seupares de valores-chave, Vejoa resposta aceita.
* Para aprender comofiltro uma hashtable por umcoleção de valores-chave, Vejoa outra resposta.

Acho que caí no problema X Y novamente, minha pergunta inicial era sobre Filtrando uma tabela de hash. Descobri que é mais fácil filtrar antes de criar a tabela de hash. Pergunta respondida, certo?

Não, o problema Y era repetir cada chave e usar os valores com os quais o @briantist me ajudou.

Meu objetivo é percorrer os nomes das chaves, que são carimbos de data e hora, e agendar uma tarefa usando o nome da chave como nome e gatilho da tarefa.

Estou criando uma tabela de hash a partir de um arquivo CSV usandoGroup-Object -AsHashTable -AsString -edit, vale a pena mencionar aqui que filtrar o CSV antes de criar o HashTable apenas facilita as coisas noPipeline ou script.

Como um exemplo:

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

Estou tentando fazer um loop sobre os nomes das chaves e poder exibi-los usando:

$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"}}

Só não sei como obter os valores das chaves nas quais estou interessado.

Encontrei os seguintes trabalhos, mas somente quando insiro um nome de chave manualmente. Só não sei como combinar os dois loops.

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

questionAnswers(2)

yourAnswerToTheQuestion