https://pswork.jp/powershell/recursive-reference/
PowerShellのメソッドで、参照渡し引数の使い方をつい忘れてしまうことがあるので、再帰処理と併用したコードサンプルを残します。
考え方として、グローバルスコープの変数を使用すれば、わざわざ参照渡しにしなくても済むものですが、メソッド自体の汎用性も無くなってしまい、スクリプトそのものがガチガチになって手を入れにくいものになってしまうので、参照渡し引数を扱えるほうが良いです。
サンプルとして、参照渡しに使用する変数は、ファイルを表す FileInfo クラスを配列として保持する変数にします。
再帰処理としては、フォルダー階層の配下のファイルを列挙するというものにします。
まず、配列変数を宣言しておき、これを参照変数として使います。