0

나는 모든 인터넷 및 stackOF를 검색하여이 문제를 해결했습니다. SQL Server Agent를 사용하여 db 복원을 자동화하려고합니다. SQL Server 에이전트 작업은 4 단계 중 3 단계로 구성되며, 그 중 3 단계는 tsql이고 나머지 하나는 powershell 스크립트입니다.경로를 찾을 수 없음 SQL Server 에이전트에서 Powershell 스크립트

스크립트를 관리자 권한으로 실행할 수 있도록 관리자 자격 증명으로 프록시를 만들었습니다.

cd c:; 
$backuppath="Microsoft.PowerShell.Core\FileSystem::\\sharedcomputer\backup"; 
$destpath="c:\tmp\"; 
get-childitem -path $backuppath | where-object { -not $_.PSIsContainer } | 

    sort-object -Property $_.CreationTime | 

    select-object -last 1 | copy-item -Destination (join-path $destpath "byte.BAK"); 

소스 공유 폴더에서 .bak 파일을 복사하여 대상의 tmp 폴더에 넣습니다. 일반 Powershell을 통해이를 실행할 때마다 정상적으로 작동합니다. SQL 서버 에이전트에서 실행하려고 할 때마다 경로를 찾을 수 없다는 오류가 발생합니다.

나는 net use를 사용하여 공유 폴더에 대한 자격 증명을 전달하려고했습니다. 나는 폴더에 자격 증명 요구 사항이 있다는 사실과 관련이 있다고 생각합니다.

원본 서버에서도 암호 파일 공유를 사용하고 있지만 Windows 탐색기를 사용하여 공유 파일을 찾을 때 어떤 이유로 초기에 자격 증명을 묻습니다. 저장하고 캐시하면 PowerShell을 사용하여 해당 폴더로 CD를 넣을 수 있습니다. 그러나이 작업은 SQL Server 에이전트에서 실행될 때 전혀 작동하지 않습니다.

+0

같은 문제가 있습니다 .... 두 서버 사이를 요새 뛰어 성공적으로 파일을 전송할 수 있었다. 이것은 대중적인 질문으로 보이지 않습니다. : | – Ben

답변

0

Windows Server 사용자의 도움을 받아 마침내이 작업을 수행 할 수있었습니다. 질문에 대답하는 단계로 돌아갑니다. 프록시 에이전트를 만들 때 현재 도메인 계정, 즉 Domain \ Administrator와 연결된 자격 증명을 사용했습니다.

프록시가 원격 서버에 연결하려면 해당 도메인에 대한 자격 증명이 있어야합니다. 그래서 대상과 소스 서버에 동일한 이름과 암호를 사용하여 다른 도메인 계정을 만들고 필요한 폴더에 대한 사용 권한을 부여했습니다.

해당 계정이 프록시에서 사용되었으며 자격 증명이로 설정되었습니다. \ 계정 이름은 와일드 카드 위치에 있기 때문에 프록시는

희망이 여기

관련 문제