2016-10-07 1 views
0

SQL 쿼리에서 다른 AD 계정으로 네트워크 드라이브를 매핑하려는 경우.XP_CMDSHELL을 사용하지 않고 SQL 쿼리에서 네트워크 드라이브를 매핑하는 방법

우리 환경에서는 XP_CMDSHELL이 (가) 비활성화되어 있습니다. 나는 기술적으로 그것을 켜고, "net use"드라이브를 사용하고 쿼리에서 다시 꺼낼 수 있지만 더 깨끗한 해결책을 찾고 있었습니까 ??

+0

T-SQL에서 매핑 된 드라이브가 필요한 작업은 무엇입니까? –

+0

'xp_cmdshell '을 통한'net use'가 가장 쉬운 방법입니다. – gofr1

+0

@Dan Guzman 특정 보안이 설정된 네트워크 폴더에서 가져 오기 파일을 가져옵니다. 그 폴더에 액세스 할 수있는 AD 계정을 받았습니다 ... –

답변

1

각 단계에서 두 가지 작업을 만들 수 있습니다 (유형은 Operating system (CmdExec)이며 cmd에서 명령을 실행 함). delete

을 그리고이를 실행 - 첫 번째 작업 net use에서

  • 는 두 번째에서 드라이브
  • 을 만들 수 있습니다.

    하지만이 경우 작업이 시작되고 드라이브를 생성하는 데 몇 초 정도 기다려야합니다 (wait delay).

    예 :

    이 작업 NetUse을 만듭니다. 단계에서 은 종류에 따라 1 단계를 만듭니다

    내 Z를 매핑 할
    net use z: \\HOST\FOLDER pa$$word /user:DOMAIN\USER /savecred /p:yes 
    

    : HOST의 폴더 공유 폴더에 드라이브 명령 부분에서 Operating system (CmdExec) 같이 net use 물품. [/ 사용자]에 다른 사용자 계정으로 연결하려면 DOMAIN 도메인에 저장된 USER 이름으로 pa $$ word의 암호를 사용하십시오. 나는이 드라이브를 매핑하지 않으

    수동 때마다 내 컴퓨터 [/ P : 예]를 시작을하고 내 사용자 이름과 암호마다 [/ SAVECRED]를 입력하지 않으.

    첫 번째 작업이 완료되었습니다.

    두 번째 작업 동일하지만 다른 명령 :

    net use z: /delete 
    

    이 그럼 당신은 시작이 좋아 :

    EXEC dbo.sp_start_job N'Job Name Here' 
    

    그것은 몇 가지 지연 운동 사용할 필요가 있도록 :

    WAITFOR DELAY '00:10'; --10 seconds delay before next statement 
    
+0

OK, 알겠습니다. - 좋은 해결책입니다. net use 명령에 문제가 있습니다 ... 문제가 있습니까? –

+0

cmd.exe/c 존재하지 않는 경우 z : \ * net use z : \\ server-fp-01 \ Finance 암호/U : USERID –

+0

'cmd.exe '를 제거하십시오. 작성한 명령은 cmd 내에서 자동으로 실행됩니다. – gofr1

관련 문제