2014-10-07 44 views
0

我試圖將文件從Linux服務器複製到共享點。我已經在共享點的顯示器上工作了。有1個文件可以查看。但是我得到一份401 Unauthorized的副本。爲什麼我會在顯示屏上成功,但不是副本?SharePoint :: SOAPHandler perl腳本適用於顯示不復制

#!/usr/bin/perl 

use Authen::NTLM qw(ntlmv2); 
use Data::Dumper; 
use SharePoint::SOAPHandler; 
use CopyTree::VendorProof; 
use CopyTree::VendorProof::LocalFileOp; 

delete $ENV{'https_proxy'}; 

my $sharepointobj = SharePoint::SOAPHandler ->new; 
my $localfileobj = CopyTree::VendorProof::LocalFileOp ->new; 

$sharepointobj->sp_creds_domain('operations.web.myworksite.com:443'); 
$sharepointobj->sp_creds_user('MYDOMAIN\myuserid'); 
$sharepointobj->sp_creds_password('Mypassword'); 
$sharepointobj->sp_authorizedroot('https://operations.web.myworksite.com:443/sites/CA...'); 

my $cpobj = CopyTree::VendorProof ->new; 

print Dumper $sharepointobj->fdls('', 'Shared Documents'); 

$cpobj -> src('/opt/app/Reports/Excel/Reports_TABS1007.xlsx', $localfileobj); 
$cpobj -> dst('Shared Documents/Reports_TABS1007.xlsx', $sharepointobj); 
$cpobj -> cp; 

print Dumper $sharepointobj->fdls('', 'Shared Documents'); 

響應:

$VAR1 = 'Shared Documents/Reports_TABS1006.xlsx';
$VAR2 = 'Shared Documents/Forms';
401 Unauthorized at /opt/app/perl/lib/perl5/SharePoint/SOAPHandler.pm line 374.

+0

「我爲什麼會成功的顯示屏上,但不能複製?」聽起來就像你沒有對目的地的寫入權限。 – ThisSuitIsBlackNot 2014-10-07 17:02:11

+0

我確實擁有寫入權限,因爲我可以將文件放置到共享點上。我在Windows機器上映射了一個共享點的驅動器,並擁有寫權限。 – user1475463 2014-10-07 18:25:12

回答

-1

所以我不知道,如果你有你的答案,但 -

有一個錯誤NTLM.pm ...爲了解決它,e DIT NTLM.pm並找到行:

$domain = substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len}); 

,並替換代碼:

$domain = &unicode($domain); 
+0

從Authen :: NTLM版本1.04開始,你不需要這麼做,只需啓用協議的v2:'使用Authen :: HTML qw/ntlmv2 /;' – 2018-01-19 14:03:02