Невозможно скопировать метаданные - PullRequest
0 голосов
/ 12 сентября 2018

ФОН:

У меня есть следующий скрипт, который должен копировать один файл из одного места в другое, а также копировать метаданные Дата изменения.

Все это работает, за исключением того, что не копирует измененные метаданные даты и показывает дату / время, когда файл был скопирован в поле / столбце измененных метаданных даты:

При выводе даты изменения исходных файлов на экран отображается правильная дата изменения, но, похоже, она не применяется к файлу в новом месте.


SCRIPT:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Variables for Processing
$WebURL="https://sharepoint.oshirowanen.com/sites/oshirodev"
$SourceFile="https://sharepoint.oshirowanen.com/sites/oshirodev/folder1/user1/test.doc"
$TargetLibrary="folder2"

#Get Objects
$Web = Get-SPWeb $WebURL
$SourceFile = $Web.GetFile($SourceFile)
$TargetLibrary = $Web.GetFolder($TargetLibrary)

#Copy the file into the Target library
$File = $TargetLibrary.Files.Add($SourceFile.Name, $SourceFile.OpenBinary(), $true)

#Copy Meta-Data
#METADATA UPDATE DOES NOT WORK
$item = $File.Item

#Original attempt - not working
#$item["Modified"] = $SourceFile.TimeLastModified.ToLocalTime()

#Suggested attempt 2 - not working
#$itemModified = ([DateTime]$SourceFile.Item["Modified"]).DateTime 
#$item["Modified"] = $itemModified 

#Suggested attempt 2
$File.item["Modified"] = $SourceFile.item["Modified"]

##Check value of sourcefiles modifieddate - shows correct modified date
write-host $SourceFile.item["Modified"]

#Update
$item.UpdateOverwriteVersion()

ВЫВОД:

Shows current date as modified date

Однако узел записи показывает правильную дату изменения:

PS C:\Users\Oshiro\Desktop\scripts> .\MetaData.ps1
10 August 2018 10:00:07
PS C:\Users\Oshiro\Desktop\scripts>

ВОПРОС:

Кто-нибудь может увидеть, что я сделал неправильно?


EXTORT-SPWEB ПОПЫТКА:

Сценарий:

Export-SPWeb -Identity "https://sharepoint.oshirowanen.com/sites/oshirodev/folder1/user1/" -ItemUrl "lists/Customlist" -Path "c:\sharepoint_export\customlist_export.cmp" -IncludeUserSecurity

Ошибка:

Export-SPWeb : Cannot find an SPWeb object with Id or Url : https://sharepoint.oshirowanen.com/sites/oshirodev/folder1/user1/.
At line:1 char:13
+ Export-SPWeb <<<<  -Identity "https://sharepoint.oshirowanen.com/sites/oshirodev/folder1/user1/" -ItemUrl "lists/Customlist" -Path "c:\sharepoint_export\customlist_export.cmp" -IncludeUserSecurity
    + CategoryInfo          : InvalidData: (Microsoft.Share...CmdletExportWeb:SPCmdletExportWeb) [Export-SPWeb], SPCmdletPipeBindException
    + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletExportWeb

1 Ответ

0 голосов
/ 17 сентября 2018

Ваш сценарий мне подходит, нужно изменить только одну строку (эти столбцы обычно считаются доступными только для чтения, но их можно изменить):

# new_file["Modified"] = original_file["Modified"]
$File.item["Modified"] = $SourceFile.item["Modified"]

Вы найдете несколько тем, касающихся этой проблемы. В некоторых сообщениях сообщается, что export-spweb и import-spweb не сохраняют такие элементы, как дата создания / изменения, дата создания и т. Д., Что в настоящее время неверно.

Помимо исправления линии, вы можете проверить это:

  • GUI IncludeUserSecurity

Включить IncludeUserSecurity через графический интерфейс. Вам необходимо: установить флажок консоль центра администрирования / Секция резервного копирования -> «Экспортировать полную безопасность»

Export Full Security section

  • Если вам нужно использовать Export / Import-SPWeb, есть опция -IncludeUserSecurity.

Вы можете написать его, используя Export-SPWeb и Import-SPWeb , которые содержат параметр [-IncludeUserSecurity]

Редактировать - из-за комментариев - используя Export-SPWeb для экспорта только списка файлов

Вы не можете экспортировать, как правильно заметил oshirowanen, отдельные файлы с Export-SPWeb - вы можете только экспортировать : весь сайт, список или библиотеку .

Я включаю способ экспорта / импорта списка:

Экспорт списка через Export-SPWeb (семейство сайтов не является корневым):

Export-SPWeb -Identity "https://sharepoint.oshirowanen.com/sites/oshirodev/folder1/user1/" -ItemUrl "lists/Customlist" -Path "c:\sharepoint_export\customlist_export.cmp" -IncludeUserSecurity

Примечание: Не забудьте включить последнюю обратную косую черту в имя семейства сайтов.

(Чтобы создать: список в SharePoint , , редактировать список или создать собственный список с помощью Дизайнер Sharepoint ).

Для импорта списка должно быть просто:

Import-SPWeb "https://sharepoint.oshirowanen.com/sites/oshirodev/folder2/" -Path "c:\sharepoint_export\customlist_export.cmp" -IncludeUserSecurity
...