ターゲット マシンでスクリプトを実行できる Windows サービス アプリケーションを使用しています。私がしなければならないことの 1 つは、ホスト マシンから別のユーザーのターゲット マシンにファイルをコピーすることです。いくつかの解決策を検討しましたが、まだ良い解決策が見つかりません。私が試したすべてをリストしています。誰かが別の/より良い解決策を持っていれば幸いです
- start-bitstransfer: このサービスは、システム アカウントで実行されます。そのため、システム アカウントのサービスのみが使用できます。
get-content/set-content: ターゲットへの psession を確立し、セッション内で set-content を使用します。このアプローチは大量のメモリを消費し、時間がかかります。1.02 MB のファイルの場合、2 分以上かかりました。
測定コマンド{$outp = icm -Session $s -ScriptBlock {get-content C:\Programdata\karan\bigfile.txt}; $outp > bfile.txt}
TotalMinutes : 2.20191604 TotalSeconds : 132.1149624 TotalMilliseconds : 132114.9624
大きなファイルの場合、ファイルをチャンクでロードしてコピーする必要があり、さらに時間がかかる可能性があります
PowerShell 3.0 では、別の資格情報でネットワーク ドライブをマッピングした後に Copy-Item を使用できます。ただし、複数のユーザーを同時に使用することはできません。これは、自動化の目的を打ち負かす New-PSDrive を使用したネットワーク ドライブのマッピングに関する問題
- Web サーバーを実行し、http get/post を実行します。これは最も速く確実ですが、ポートとファイアウォールの問題を開きます。