백그라운드 작업으로 실행하고 싶은 스크립트 블록이 있습니다. 아래 명령을 실행하고 싶습니다.배경 또는 원격 작업으로 scriptblock을 시작할 수 없습니다. 직접 잘 실행됩니다.
Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv -Append C:\Temp\Test_Source_Checksum.csv
이 명령을 실행하면 문제없이 성공적으로 처리됩니다.
나는에 대해 다음 시도 '시작 - 작업'
이 결과Start-Job -ScriptBlock { Get-ChildItem -Recurse $source | Get-DfsrFileHash | Export-csv -Append C:\Temp\Test_Source_Checksum.csv }
'은 Get-작업'실제로 었소, 또는 나던 누락 된 파일에 의해 판단하는 것으로 나타날 경우, 완료로 표시 : 'Test_Source_Checksum.csv'는
나는 또한이 결과 '호출-명령'
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
을 ...
내가 잘못 여기서 시작 - 작업/호출-명령을 사용하여 건가요?배경 작업으로이 작업을 실행하려는 이유는 많은 양의 데이터와 체크섬을 (DFS 마이그레이션의 경우) 복사하려고하기 때문입니다. 그때 검사에게 작은 부분 집합에 자사를 통해 다음 배치를 복사하는 동안 복사 된 데이터를 데이터를 복사하고 싶습니다 ... 씻어
감사합니다,
를 반복 크리스
편집 : 다음은 전체 스크립트의 사본입니다 :
##----------------------------------------------------------------------------------##
$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이 둘 다 완료된 것으로 말하고 있지만 Script Block을 실행하지 않았습니다 ('Test_Source_Checksum.csv'없음) –
실행중인 PowerShell 버전은 무엇입니까? Get-DfsrFileHash 명령을 실행하기 전에 스크립트 블록 내에서 모듈을 가져 오려고 했습니까? – boeprox