2012-01-05 2 views
0

일부 DC를 수동으로 백업하는 powershell 스크립트 초안을 작성 중입니다. 백업을 한 폴더에서 다른 폴더로 이동해야하며 Get-ChildItem -Filter "Backup *"을 사용하여 백업 파일을 선택한 다음 robocopy를 사용하여 이동합니다.Get-ChildItem Powershell 오류 함 - 필터 및 Robocopy (ErrorAction)

작동하지만 소스 또는 대상 경로가 올바르지 않으면 트랩 및 사용자 지정 오류 메시지 "XX에서 SystemStateBackup으로 로컬 백업 복사 오류"를 추가하려고합니다. 모든 오류를 로그 파일에 파이프하고 싶습니다.

없는 함정 원래 내가 코드 만

Trap {"Error Copying Local Backup from XX to SystemStateBackup";Continue} Get-ChildItem f:\WindowsImageBackup\ITUPW-PRODDC7 -Filter "Backup*" -Name -ea "Stop" 

의 일부를 사용하는 경우 트랩이 작동하지만이 방법

Trap {"Error Copying Local Backup from XX to SystemStateBackup";Continue} Get-ChildItem f:\WindowsImageBackup\ITUPW-PRODDC7 -Filter "Backup*" -Name | ForEach-Object { 
robocopy "f:\WindowsImageBackup\ITUPW-PRODDC7\$_" "f:\WindowsImageBackup\ITUPW-PRODDC7\SystemStateBackup\$_" /Z /S /MOVE /njh /njs /ndl /nc /ns /np /nfl} -ea "Stop" 
를 작동하지 않습니다

Get-ChildItem f:\WindowsImageBackup\ITUPW-PRODDC7 -Filter "Backup*" -Name | ForEach-Object { 
robocopy "f:\WindowsImageBackup\ITUPW-PRODDC7\$_" "f:\WindowsImageBackup\ITUPW-PRODDC7\SystemStateBackup\$_" /Z /S /MOVE /njh /njs /ndl /nc /ns /np /nfl} 

입니다

다음 powershell 오류가 발생합니다.

Get-ChildItem : 경로 'F : \ WindowsImageBackup \ ITUPW-PRODDC'이 (가) 없기 때문에 찾을 수 없습니다. 줄에 : 1 개 문자 : 88 + 트랩 { "XX에서 SystemStateBackup에 복사 오류 로컬 백업"; 계속}은 Get-ChildItem을을 < < < < F : \ WindowsImageBackup I TUPW-PRODDC -Filter "백업 *"- 이름 \ |/Z/S/MOVE/njh/njs/ndl/nc/z/S/MOVE/njl/nc/z/S/MOVE/njh/ncd/ndl/ncf/ndl/nc/Nets/np/nfl} -ea "중지" + CategoryInfo : ObjectNotFound : (F : \ WindowsImageBackup \ ITUPW-PRODDC : String) [Get-ChildItem], ItemNotFoun dException + FullyQualifiedErrorId : PathNotFound, Microsoft.PowerShell.Commands. GetChildItemCommand

어떤 조언을 주시면 감사하겠습니다.

시간 내 주셔서 감사합니다.

아멜리아 - 당신은 오히려 오기-ChildItem을에보다 foreach 문에 -ea "Stop"를 적용하는 짧은 빨대

+0

사용중인 PowerShell 버전은 무엇입니까? '$ host'라고 입력하면 알 수 있습니다. –

+0

-filter를 삭제하고 Get-ChildItem "F : \ WindowsImageBackup \ ITUPW-PRODDC7 \ Backup *"을 사용해 보셨습니까? –

+0

안녕하세요 Andy, 버전 2를 사용하고 있습니다. – user1131196

답변

0

를 당긴 SYS 관리자. 파이프 앞쪽으로 이동 |

robocopy의 경우 foreach-object 내에서 $? 또는 $lastexitcode을 사용하여 정상적으로 실행되었는지 확인할 수 있습니다.

+0

감사합니다. 나는 robocopy없이 Get-ChildItem에서 작동하는 함정을 얻을 수 있습니다. 누군가가 이것을 함수에 넣을 수있는 방법을 조언 해 주시겠습니까? '-ea "Stop"'을 둘 다 적용 할 수 있습니까? – user1131196

+0

@ user1131196 - 내 대답에서 두 번째 파라를 읽지 않았습니까? – manojlds