2016-08-22 4 views
0

원격 SharePoint 서버에있는 SharePoint 라이브러리에서 파일을 읽거나 복사하려면 PowerShell (v2) 스크립트가 필요합니다. 비틀기는 파일의 마지막 수정 날짜를 필터링해야합니다. 또한 스크립트를 실행하는 서버에는 SharePoint가 설치되어 있지 않습니다.Powershell에서 SharePoint 라이브러리 파일 읽기

는 여기에 내가 무엇을 시도했다입니다 : LastWriteTime 필터와 SP 파일의 UNC 경로를 사용하여

  1. Get-ChildItem. 이 문제에 대기 시간 문제가 발생했습니다. 최근에 웹에서 문서 라이브러리를 열면 잘 돌아갑니다. 그러나 자체적으로 실행되도록 예약하면 읽기가 일관되게 실패합니다 (파일을 찾을 수 없음).

  2. 아래 스크립트를 사용하여 파일을 복사하는 중입니다. 문제는 수정 된 날짜가 대상 컴퓨터로 복사 될 때 손실된다는 것입니다. 추가/수정 된 날짜는 이제 복사 날짜입니다.

    $target = "http://myspweb.com/myfile.xlsx" 
    $dest = "D:\library\newfile.xlsx" 
    $wc = New-Object System.Net.WebClient 
    $wc.UseDefaultCredentials = $true 
    $wc.DownloadFile($target, $dest) 
    
  3. Get-SPWeb 명령을 사용합니다. 알려진 바에 따르면 마지막으로 수정 한 날짜를 포함하여 파일의 속성을 노출하지만 스크립트를 실행하는 서버에 SharePoint가 설치되어 있어야합니다 (Add-PSSnapin Microsoft.Sharepoint.Powershell은 "이 컴퓨터에 설치되어 있지 않음"오류를 나타냄). SharePoint 설치는 실제로 옵션이 아니며 원격 작업도 아닙니다. SP 도구의 일부 설치가 옵션 일 수도 있지만 필요한 것은 무엇인지 파악할 수 없습니다.

다른 방법으로이 문제에 접근 할 수 있습니까?

+0

New-PSDrive를 사용하여 세션에서 위치를 마운트 한 다음 파일? 저는 현재이 방법을 사용하여 양식 (XML 파일)을 읽도록 SharePoint 양식 라이브러리를 탑재합니다. 그것은 나를 위해 일관되게 일합니다. –

+0

@ 존, 아마도,하지만 난 # 1 위의 개요와 같은 문제로 실행하는 것 같아요, 왜냐하면 내가 UNC 경로로 액세스하고 있기 때문입니다. 나는 그것을 시도 할지도 모른다. – bvy

답변

0

당신은 (서버 측 객체 모델)을 할 수없는 무엇

Get-SPWeb cmdlet을 실제로 SharePoint 팜의 한 부분으로 셰어를 실행하는 웹 프런트 엔드 서버 중 하나에서 사용할 수 있습니다, 그래서 서버에 로그인 할 수있는 권한이 없다면, 그 옵션은 바로 나옵니다.

는 (웹 서비스) 할 수있는 일

는 다른 방법으로, 셰어는 원격 서버에서 (열 데이터 포함) SharePoint 데이터에 액세스하는 데 사용할 수있는 웹 서비스를 제공합니다.

사용 가능한 웹 서비스는 사용중인 SharePoint 버전에 따라 다릅니다.

목록 웹 서비스

당신이 당신의 자신의 SOAP 호출을 구성하고자하는 경우 2,013분의 2,010 Lists.asmx 웹 서비스에 액세스 할 수는 SharePoint. Powershell을 사용하는 예제는 this answer을 참조하십시오. 공식 문서 here을 참조하십시오.

단지 (CAML 쿼리 구문을 사용하여) 특정 수정 날짜와 결과를 반환되도록 검색어를 포맷 할 수 있습니다, 또는 당신이 관심있는 사람을 선택 PowerShell에서 그들을 모든 결과를 반환하고 처리 할 수 ​​있습니다.

나머지 API

셰어 포인트 2013은 또한 당신이 사용할 수있는 REST 기반 웹 서비스를 가지고있다. (기술적으로 쉐어 포인트 2010도 마찬가지지만, 약간은 하찮은 것입니다.) 다음은 PowerShell과 REST API를 사용한 예입니다. https://gallery.technet.microsoft.com/office/How-to-Get-all-the-Lists-a0af6259

관련 문제