我正在尝试通过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;
}
}
或ELSE我需要使用perl脚本将文件和文件夹复制到目标文件夹而不使用ROBOCOPY,并使用管理员凭据,这是用户无法访问的。
任务是,如果用户请求admin创建一个文件夹/子文件夹,其权限/权限/结构与源原始文件一样,并且应由管理员创建,并由用户端创建请求的目标。每次管理员都不能这样做,因此我们尝试自动化这个过程。用户无法访问服务器以复制文件夹。
如果有人建议如何解决这个问题,我们将不胜感激。
答案 0 :(得分:1)
你可以使用中间的东西。您可以使用用户的权限在Windows上创建计划任务。你应该创建为&#34;一次&#34;任务。您可以根据需要启动任意数量。
您可以使用此命令从perl脚本调用。
SCHTASKS / RUN / TN&#34;任务名称&#34;
这是个主意。我希望这会有所帮助。
答案 1 :(得分:0)
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");
上述行支持根据目标的实际权限复制文件和文件夹。希望这美好的一天!