
もう1つ質問があります。
述べたようにここ2 台のサーバーを接続して大量のファイルをコピーすることに成功しました。しかし、コピーはまったく機能しません。宛先サーバーに既に存在するファイルとフォルダーに対して多くのエラーが返されます。
私がやったことは、上記のリンクで説明されているように PSSession を作成することでした。 でソース サーバーのファイルを正常に表示できますInvoke-Command -ScriptBlock { Get-ChildItem -Path "d:\" } -Session $source_server
。次に、次のようにコピーを開始しました。
copy-item -path "d:\folder_on_source_server\*" -destination "d:\folder_on_destination_server" -FromSession $source_server -recurse -exclude "*dfsrprivate*",".dropbox.cache"
ソースと宛先のフォルダ名は同じです。実際、両方のサーバーのフォルダ構造は同じです。しかし、前述のように、宛先にすでに存在するファイルとフォルダに関するエラーが多数発生しました。本当に多数です。新しいファイルのみがコピーされ、更新されたファイルはコピーされません。-force オプションが機能することはわかっていますが、すべてが再度コピーされます。
私の今の目標は、すべての新しいものをコピーすることですそしてソースからファイルを更新しましたが、copy-item にはそのような機能がありません。そこで、robocopy を使用しようとしました。問題は、robocopy にリモート サーバー フォルダーをソースとして使用するように指示する方法がわからないことです。robocopy で UNC パスを使用できることは知っていますが、リモート UNC パスを解析する方法がわかりません。robocopy remote_source_folder local_destination_folder /mir
除外を設定するようなもの。
PSDrive を作成しようとしましたが、ソース サーバー上にのみ作成されます。ローカル robocopy では認識されません: Invoke-Command -session $vms -ScriptBlock { New-PSDrive -name "S" -PSProvider "FileSystem" -Root "\remote_server_ip\d$" }。-session を削除すると、ドライブは知らない場所に作成されます。
また、net use などの他のコマンドも試し、ソースで get-childitem を使用して変数を作成し、その他もすべて、invoke-command の有無、-session の有無で試しましたが、どれも機能しませんでした。
それで、これらのファイルを取得するのを手伝ってもらえますか? 簡単なことだと思うのですが、わかりません。また、ユーザー名とパスワードを入力せずにセッションを開始する方法も教えていただけると助かります。
アドバイスありがとうございます!