Dois erros aqui:
-
Primeiro,
Invoke-Commandpode usar o parâmetro-ComputerNameou o parâmetro-Session. Você está criando uma sessão aqui, mas não está usando, portanto, os comandos executados são executados em sessões diferentes e não sabem nada um do outro. -
-ComputerNamerecebe umstring[]para que você possa descartar oforeach. Você pode, então, apenas colocar a definição da função e a chamada em um único bloco de script.