Классическая проблема - вызывайте функции PowerShell точно так же, как вы вызываете командлеты PowerShell - с разделителями пробелов и без скобок, например ::100100
PS> listAllPaths C:\Downloads\Nemi *.jpg
Обратите внимание, что при таком вызове вам не нужны двойные кавычки вокруг аргументов. В PowerShell 2.0 обязательно используйте Set-StrictMode -version 2.0, и он поймает эту ошибку:
PS> Set-StrictMode -Version 2.0
PS> function foo($a,$b) {"$a $b"}
PS> foo(1,2)
The function or command was called as if it were a method.
Parameters should be separated by spaces. For information about
parameters, see the about_Parameters Help topic.
At line:1 char:4
+ foo <<<< (1,2)
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : StrictModeFunctionCallWithParens
Это правильный способ вызова этой функции PowerShell:
PS> foo 1 2
1 2
К вашему сведению, при вызове listAllPaths массив ("C: \ Downloads \ Nemi", "* .jpg") передается в ваш параметр $ fromFolder. Параметр $ filter не получает значения.
Я должен также упомянуть, что вы хотите использовать запятые и парены только при вызове методов .NET / COM / WMI.