2014-10-16 4 views
0

SharePoint 목록을 PowerShell 스크립트로 업데이트하려고합니다. 이 목록에는 약 50,000 개의 항목이 있습니다. 필요한 목록 항목을 가져 오는 데 1 시간 이상 걸리고 업데이트를 수행하는 데 더 오래 걸립니다.powershell 스크립트를 실행하는 데 몇 시간이 걸립니다.

다음은 코드의 라인을 실행하는 데 너무 오래 복용 있습니다

$url = "http://abcd/" 

$listNameRequestProgress = "RequestProgress" 

$web = get-SPWeb $url 

$listNameRequestProgressObj = $web.lists[$listNameRequestProgress] 

$itemRequestProgress = $listNameRequestProgressObj.Items | ? {$_.ID -eq 47809} #takes long time 

$itemRequestProgress["Assigned"] = "616;#abcd" 
$itemRequestProgress.UpdateOverwriteVersion() #takes long time 

어떤 도움을 주시면 감사하겠습니다. 감사합니다.

답변

0

평판이 <인데 댓글을 달 수 없습니다.이 섹션에서 이에 대한 의견을 말하십시오.

코드를 명확하게 게시하십시오. $ listNameRequestProgressObj가 무엇입니까? 어떻게 만들어 지나요? $ listNameRequestProgressObj의 출력은 무엇입니까? GM 명령? 거기에 몇 가지 유용한 방법이 있습니다. 이에 높은 수준의 모습에서

는, U는

$itemRequestProgress = $listNameRequestProgressObj.Items | ? {$_.ID -eq 47809} 

에 당신은 WHERE 절을 사용하여 모든 항목을 받고 있는지 말할 수있다. 가능한 경우 -Filter와 같은 것을 사용하면 목록의 모든 "항목"을 처리 할 필요가 없습니다.

+0

안녕하십니까, 응답 해 주셔서 감사합니다. 게시물을 개정하고 나머지 코드를 추가했습니다. 감사합니다 – Aquib

+0

Get-SPWeb.http : //technet.microsoft.com/en-us/library/ff607807 (v = office.15) .aspx의 설명서를 참조하십시오. "-Filter"매개 변수를 사용할 수 있습니다. 기본적으로 Get-SPWeb -Filter "$ _. SomeProperty = $ listNameRequestProgress"를 사용하여 $ web.lists [$ listNameRequestProgress]를 변경해야합니다. – zerocool18

관련 문제