2015-10-15 51 views
0

我們的Exchange服務器(Exchange 2010/Win 2008 R2)上運行的PowerShell腳本需要查詢SharePoint 2013中的SharePoint文檔庫以查找名稱可以爲每天不同。例如,通過Powershell列出沒有SharePoint模塊的SharePoint庫中的文件

Stats_2015_10_14_06_00_01.csv或Stats_2015_10_15_06_05_01.csv

這妨礙我從能硬編碼的文件名,並使用System.Net.WebClient方法來下載文件本地。

我也沒有在Exchange服務器上安裝SharePoint模塊,當然那裏的管理員也不想安裝它。

我試圖將基於HTTPS的Sharepoint站點名稱轉換爲基於UNC(\ ...)的名稱,但似乎只能在我的Windows 8筆記本電腦上工作......但在Exchange服務器上失敗。

有什麼建議嗎?

回答

2

使用New-WebServiceProxy調用Lists.asmx webservice。

類似:

$listname = "Documents" 
$query = "<Query> 
       <Where> 
       <Lt> 
        <FieldRef Name="ID" /> 
        <Value Type="Counter">3</Value> 
       </Lt> 
       </Where> 
      </Query>" 
$queryOptions = "" 
$Credentials = Get-Credential 
$Ws = New-WebServiceProxy -Uri "Http://mysharepoint.com/mysite/_vti_bin/lists.asmx" -namespace WebServiceProxy -class lists -Credential $Credentials 
[xml]$list = $Ws.GetListItems($listName, "", $query, "", 1000, $queryOptions, null) 

參考了Lists.Asmx電話:https://msdn.microsoft.com/en-us/library/office/websvclists.lists.getlistitems.aspx

您現在有一個包含列表中的所有項目的XML對象(根據您的查詢)。那麼您應該能夠遍歷該XML數據以找到您的文件名,然後使用System.Net.WebClient直接下載,因爲您現在將擁有該路徑。

另外,您可能會說服您的系統管理員讓您將Microsoft.Sharepoint.Dll庫安裝到Exchange服務器中。然後您可以使用powershell導入並獲取所有常用的SP數據結構(spsite,Splistitem等),而無需安裝完整的Sharepoint Management shell插件

相關問題