Dois erros aqui:
-
Primeiro,
Invoke-Command
pode usar o parâmetro-ComputerName
ou 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. -
-ComputerName
recebe 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.