我可以通过Powershell获取SharePoint中文件的上次写入时间吗?

时间:2016-03-27 17:33:00

标签: powershell sharepoint

是否可以通过使用Powershell获取文档库中文件的最后WRITE时间?

$url = "http://myserver/sites/mysite/shared%20documents/myfile.xlsx"
$webclient = New-Object System.Net.WebClient
$lastWriteTimestamp = #...

1 个答案:

答案 0 :(得分:0)

是的,你可以,它被记录在SPFile.TimeLastModified财产中。 此刻我无法访问SharePoint安装进行测试,但脚本看起来就像这个伪代码。

Add-PSSnapin Microsoft.SharePoint.Powershell
$web = Get-SPWeb "http://mywebname/"
$list = $web.Lists["Documents"]
$item = $list.GetItemById(1)
$lastWriteTime = $item.TimeLastModified

修改 澄清; SharePoint PowerShell管理单元仅适用于安装了SharePoint的服务器,不能远程使用。它还要求用户对相关数据库具有SPShellAdmin权限。

如果需要从远程会话访问该属性,则必须使用CSOM(客户端对象模型),这仍然需要您访问Microsoft.SharePoint.Client.dll。

这是一个用于访问CSOM的伪代码版本,我再也无法访问SharePoint安装来测试它,但它会是这样的。

$creds = Get-Credential
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" 
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$siteUrl = “http://mywebname/”
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl) 
$ctx.Credentials = $creds
$web = $ctx.Web 
$lists = $web.Lists
$ctx.Load($lists) 
$ctx.ExecuteQuery()
$item = $lists["Documents"].GetItemById(1)
$lastModified = $item.File.TimeLastModified

如果您也无法使用CSOM,那么我担心您无法检索上次修改时间。使用标准WebClient调用无法访问它。