2016-08-01 2 views
1

ROBOCOPY가 파일 및 폴더 (하위 폴더 포함)를 대상 폴더 (사용자 쪽에서 가져 오는 파일)에 복사하려고합니다. 그러나 대상 폴더를 만들 수있는 권한이 없습니다. 관리자의 사용자 이름과 암호가 있습니다. 이 코드를 구현하여이 스크립트 또는 배치 파일에서 사용자 이름/암호를 사용하는 방법Perl 및 ROBOCOPY를 사용하여 동일한 사용 권한/우선권으로 파일 및 폴더를 반복적으로 복사하십시오.

use strict; 
use warnings; 
use Cwd; 

while(1) 
{ 
    print "Enter the project \& Destination Folder: "; 
    my $input_rec = <STDIN>; 
    chomp($input_rec); 
    if($input_rec=~m/(exit|q|x)/i) { exit; } 
    elsif(!$input_rec && $input_rec eq '') { } 
    elsif($input_rec!~m/(\s|\t)/s) { } 
    else 
    { 
     my ($dept, $dest) = split /\s/, $input_rec; 
     print "DEPT: $dept\t$dest\n"; 
     system("ROBOCOPY \\\\server1\\Robo\\Source\\ISBN \\\\server2\\Robo\\Source\\ISBN /MIR /SEC /SECFIX"); 
     exit; 
    } 
} 

을 (사용자로부터 얻는 "프로젝트를"고려하지 않는다) 아니면 나는 사용자가 액세스 할 수 있습니다하지 않은 관리자 자격 증명을 사용하여 대상 폴더에 펄 스크립트를 사용하여 ROBOCOPY하지 않고 파일 및 폴더를 복사해야 .

사용자가 권한 원본/소스에있는 권한/권한/구조를 가진 폴더/하위 폴더를 만들도록 관리자에게 요청한 경우 사용자가 요청한 대상뿐만 아니라 관리자가 요청을 작성해야합니다. 관리자는 매번이 작업을 수행 할 수 없으므로이 프로세스를 자동화하려고합니다. 사용자는 폴더를 복사하기 위해 서버에 액세스 할 수 없습니다.

누구든지이 문제를 해결할 방법을 제안하면 감사 할 것입니다.

+0

[여기] (https://technet.microsoft.com/en-us/library/cc733145(v= ws.11) .aspx)에서 볼 수 있듯이'ROBOCOPY '의 경우 사용자 이름과 패스워드를 입력하면'ROBOCOPY'를 호출하기 전에 접근 권한을 부여해야합니다. –

+0

@ John Doe : ROBOCOPY없이 펄 스크립트로 작성할 수 있다면 제안 해 주시겠습니까? – ssr1012

+0

[link] (https://metacpan.org/pod/File%3a%3aCopy%3a%3aRecursive) –

답변

1
my $source = "\\\\server1\\Robo\\Source\\ISBN"; 
print "DEPT: $dept\t$dest\n"; #$dest = "\\\\server2\\Robo\\Destination\\ISBN"; 
system("net use $source /user:.\\\\\administrator xxxx"); 
system("net use $dest /user:.\\\\administrator xxxx"); 
system("ROBOCOPY $source $dest /MIR /SEC /SECFIX"); 

위의 줄은 실제 권한에 따라 파일과 폴더를 대상에 복사하는 것을 지원합니다. 희망 좋은 하루!

2

중간 단계를 사용할 수 있습니다. 사용자의 권한으로 Windows에서 예약 된 작업을 만들 수 있습니다. "한 번에"작업을 만들어야합니다. 원하는만큼 실행할 수 있습니다.

Task view User

이 명령을 사용하여 펄 스크립트에서 호출 할 수 있습니다.

합니다 schtasks/실행/TN

그 아이디어 "작업의 이름". 이게 도움이 되길 바란다.

+0

'사용자의 권한으로 윈도우에서 예약 된 작업을 생성 할 수있다. '나는 이것에 대해 명확하지 않다. 우리는 관리자 권한을 부여해야 하는가? 사용자에게? 그 큰 작업과 지루한 – ssr1012

+0

내 시나리오의 주요 문제는 "net use"명령이 활성화되어 있지 않고 서버에서 허용되지 않으며 서버에서 작업을 수행하기 위해 스크립트를 시작해야한다는 것입니다. 또한 "net use"는 텍스트 일반 파일에 암호를 쓰고 있기 때문에 사용하는 것이 매우 위험합니다. 다른 방법으로 예약 된 작업을 수행하면 올바른 권한으로 시작하는 작업에서 사용자를 활성화하고 사용 된 사용자와 암호를 알기가 더 어려워집니다. 사용자가 admin 인 경우 "최고 권한으로 실행"을 선택할 수있는 옵션이 있습니다.이 옵션은 관리자 또는 사용자의 역할로 실행할 수 있습니다. – Korsakof

+0

우리는 exe와 그 창을 만들어서 위의 문제를 해결할 수 있습니까? – ssr1012