Remove-Itemでパスが260char(文字)以上のアイテムが含まれるディレクトリを削除できない。因みにWSL上のpwshの場合260byte~不可。初期設定では以下の通り。(rw,noatime,uid=1000,gid=1000,case=off)wsl.confで以下の設定を行うことで、アクセス権が得られる。(rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,case=off)devblogs.microsoft.comインクリメンタルとリモートバックアップは同時にできないリモートバックアップと--link-destを一行に書いたら、フルバックアップになってしまいました。リモートバックアップの世代管理を行う場合、rsyncで差分リモートバックアップしてから、ローカルにあるリモートのファイルをインクリメンタルバックアップする、という流れになります。GenListにリモートバックアップ機能が無く、MirListの後にGenListを実行しているのはそれが理由です。wslpathでは変換できないパスがあるWSLにはwslpathというWindowsとLinuxのパスを相互に変換するコマンドが用意されています。これでは全てを網羅しません。'D:\'/mnt/d/関数ConvertTo-WslPathとして、自前正規表現を作って対処することにしました。rsyncと書くのでは、引数が長くなるにつれて正しく扱えません。Start-Processではstdout・stderr両方を直接1つのログファイルに出力出来ません。.NETクラスSystem.Diagnostics.Processを使用して、安全に購読します。以下を丸パk参考にさせて頂きました。私のスクリプトの方は最低限必要なところと、次項で説明するLinuxへの対応が含まれています。fileシングルクォートをエスケープしたり、それを更にエスケープ...というのは可読性も低く、ユーザ設定が困難になる為却下。関数Invoke-Process内では、WindowsではStartInfo.Arguments、LinuxではStartInfo.ArgumentListプロパティを使用するようにして対応。関数Invoke-DiffBackup内には以下のコードがあります。`"$Dst`""--deleteはコピー元にあってコピー先にないものを削除する引数ですが、--excludeされたものが既にあろうと削除しません。--delete-excludedを指定することによって、--excludeされたものも含めることが出来ます。--excludeされているにも関わらず、--excludeされてねぇ!!!と奔走しましたが、原因は斜め上にありました。