2016-03-27 6 views
0

Ist es möglich, mit Powershell zu erhalten, wann die letzte Schreibzeit einer Datei in einer Dokumentbibliothek war?Kann ich die letzte Schreibzeit einer Datei in SharePoint über Powershell abrufen?

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

Für SharePoint-spezifische Fragen finden Sie auf der Website SharePoint Stack Exchange (http://sharepoint.stackexchange.com). –

+1

@P S: Da sich die Frage auf PowerShell-spezifische Cmdlet-Funktionen bezieht, sehe ich im SharePoint SE-Portal keine große Hilfe. Diese Frage kann nicht ohne jemanden beantwortet werden, der Kenntnis von PowerShell hat, also würden sie wahrscheinlich den Fragesteller gleich hier zurück geschickt haben. – gravity

Antwort

0

Ja, Sie können, ist es in den SPFile.TimeLastModified Property aufgezeichnet. Ich habe in diesem Moment keinen Zugriff auf eine SharePoint-Installation zum Testen, aber das Skript würde ungefähr so ​​aussehen wie dieser Pseudocode.

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

Edit: zu klären; Das SharePoint PowerShell-Snap-In funktioniert nur auf Servern, auf denen SharePoint installiert ist. Es kann nicht remote verwendet werden. Außerdem muss der Benutzer über die Berechtigung SPShellAdmin für die relevante Datenbank verfügen.

Wenn Sie von einer Remotesitzung aus auf diese Eigenschaft zugreifen müssen, müssen Sie CSOM (clientseitiges Objektmodell) verwenden, für das weiterhin Zugriff auf die Microsoft.SharePoint.Client.dll erforderlich ist.

Hier ist eine Pseudocode-Version für den Zugriff mit CSOM, wieder habe ich keinen Zugriff auf eine SharePoint-Installation, um es zu testen, aber es wird so etwas sein.

$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 

Wenn Sie nicht in der Lage sind entweder die CSOM zu verwenden, dann bin ich fürchte, Sie werden nicht in der Lage sein, den Zeitpunkt der letzten Änderung abrufen Es ist nicht erreichbar mit Standard-WebClient Anrufen ist.

+0

Können Sie klären, für welche Version von PowerShell dies gilt? OP ist möglicherweise nicht auf deinem Niveau, da dies bei mir nicht funktioniert. – gravity

+0

Sie können CSOM relativ einfach mit SharePoint Online verwenden und es gibt viele Beispiele. Sie sollten auch die [PnP] (https://github.com/OfficeDev/PnP-powershell) -Bibliotheken für PowerShell auschecken, da CSOM im Allgemeinen einfacher zu handhaben ist. –

Verwandte Themen