バックグラウンドジョブとして実行したいスクリプトブロックがあります。以下は実行したいコマンドです:スクリプトブロックをバックグラウンドジョブまたはリモートジョブとして開始できません。直接細かく実行されます。
Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv -Append C:\Temp\Test_Source_Checksum.csv
このコマンドを実行すると、問題なく正常に実行されます。
私はそれが実際にhasnt、またはdoesntが不足しているファイルから判断しているように見えるとき、これは、完了として表示する「-ジョブ取得]が、その結果「開始-仕事」
をStart-Job -ScriptBlock { Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv -Append C:\Temp\Test_Source_Checksum.csv }
ために次のことを試してみました: 'Test_Source_Checksum.csv'
は私も 'Invoke-Commandコマンド'
Invoke-Command -AsJob -ComputerName ($env:COMPUTERNAME) -ScriptBlock { Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv -Append C:\Temp\Test_Source_Checksum.csv }
ために、以下のものを使用して試してみましたこれは、 'ゲット・ジョブ' が失敗した表示になります。
私が使用して故障を表示する場合:
(get-job -name Job38).JobStateInfo.Reason
を、私は戻って何を取得...私が間違ってここにスタート-仕事/ Invoke-Commandコマンドを
を使用していますか?
これをバックグラウンドジョブとして実行したいのは、大量のデータとチェックサムをコピーしようとしているからです(DFS移行の場合)。 :私は、チェックサムのが上の次のバッチをコピーしながら、コピーされたデータ...が
おかげで、
クリス
EDITをすすぎと繰り返し、小さなサブセット内のデータをコピーしたいですここにスクリプト全体のコピーがあります:
##----------------------------------------------------------------------------------##
$source="E:\DFSR_Migration_Test_Prod"
$dest="F:\DFSR_Migration_Test_Prod"
$what = @("/COPYALL","/B","/SEC","/E","/xd","dfsrprivate")
$options = @("/R:6","/tee","/MT:32")
$cmdArgs = @("$source","$dest",$what,$options)
##----------------------------------------------------------------------------------##
robocopy @cmdArgs
Write-Output "Prod_Copied @" (get-date) | Out-File C:\Temp\File_Copy.txt -Encoding ascii -Append -NoClobber
Write-Output "Initiating Prod Source Checksum @" (get-date) | Out-File C:\Temp\File_Copy.txt -Encoding ascii -Append -NoClobber
Start-Job -ScriptBlock { Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv C:\Temp\Prod_Source_Checksum.csv }
Write-Output "Initiating Prod Destination Checksum @" (get-date) | Out-File C:\Temp\File_Copy.txt -Encoding ascii -Append -NoClobber
Start-Job -ScriptBlock { Get-ChildItem -Recurse $dest | Get-DfsrFileHash | Export-csv C:\Temp\Prod_Destination_Checksum.csv }
ジョブの結果を受け取ろうとするとエラーが表示されますか? 'Get-Job | Receive-Job' – boeprox
はい、ありがとうございます、WinRMはセットアップされていないので、Invoke-Commandを実行できませんでした。これは今解決されましたが、Invoke-CommandとStart-Jobの両方が同じで、両方とも完了したがスクリプトブロックを実行していません( 'Test_Source_Checksum.csv'なし) –
実行しているPowerShellのバージョンは何ですか? Get-DfsrFileHashコマンドを実行する前にスクリプトブロック内でモジュールをインポートしようとしましたか? – boeprox