
구성에 따라 일부 파일 및 폴더의 자동 백업을 수행하려고 합니다. 이는 BITS(Background Intelligent Transfer Service)를 사용하는 Powershell 5를 사용하여 수행됩니다. 예:
Start-BitsTransfer $Source\* $Destination -RetryInterval 60 -RetryTimeout 600
Powershell 스크립트는 박쥐를 사용하여 실행됩니다.
powershell -ExecutionPolicy unrestricted .\Main.ps1
배치는 예약된 작업을 사용하여 실행됩니다.
User account: AD service account
Run: whether user is logged on or not
예약된 작업에 설정된 동일한 계정을 사용하여 일괄 처리를 직접 실행하면 완벽하게 실행됩니다. 작업 스케줄러에서 실행하면 BITS 작업에서 다음 오류가 발생합니다.
사용자가 네트워크에 로그온하지 않았기 때문에 요청한 작업이 수행되지 않았습니다. 지정한 서비스가 존재하지 않습니다. (HRESULT 예외: 0x800704DD)
BITS 서비스의 사용자를 예약된 작업에 사용하는 것과 동일한 서비스 계정으로 설정하여 변경하려고 했지만 서비스가 더 이상 시작되지 않습니다.
다음 오류로 인해 Background Intelligent Transfer Service 서비스를 시작하지 못했습니다.
이 서비스에 지정된 계정이 동일한 프로세스에서 실행되는 다른 서비스에 지정된 계정과 다릅니다.
예약된 작업으로 돌아가서 "사용자가 로그온한 경우에만" 실행되도록 변경했습니다. 물론 이는 이 사용자에 대해 자동 로그온을 설정한 경우에만 의미가 있습니다(그렇지 않으면 로그인하지 않으면 실행되지 않습니다).
질문:자동 로그온과 같은 방법을 사용하지 않고 BITS를 사용하여 백업을 자동화하려면 어떻게 해야 합니까?
답변1
로그인한 경우에만 해당 스크립트를 실행할 수 있는 것 같습니다. MS 설명서 "Using Windows Powershell to Create BITS Transfer Jobs"에서 찾을 수 있습니다.여기.
Windows 서비스와 같은 비대화형 컨텍스트에서 실행되는 프로세스 내에서 *-BitsTransfer cmdlet을 사용하면 BITS 작업에 파일을 추가하지 못하여 일시 중단된 상태가 될 수 있습니다. 작업을 진행하려면 전송 작업을 생성하는 데 사용된 ID가 로그온되어 있어야 합니다. 예를 들어 작업 스케줄러 작업으로 실행된 PowerShell 스크립트에서 BITS 작업을 만드는 경우 작업 스케줄러의 작업 설정 "사용자가 로그온한 경우에만 실행"이 활성화되어 있지 않으면 BITS 전송이 완료되지 않습니다.
사용해 보세요로보카피대신에.