Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 7589

How do I copy over "Created By" & "Modified By" field values to a new library, using PowerShell?

$
0
0

I have a site that was migrated from SP 2007 to 2013, using a docave tool...this works fine and everything seems to be okay. However I now have to move documents from one Library to a new one, along with all associated metadata. I have a PowerShell script I am using to do this and it is working...for the most part...except for copying the authoring metadata. So when I run this PowerShell script, I get my "Created By" and "Modified By" fields updated with the "WindowsAccount" user account that performed the migration. This is what is confusing to me...after the migration, when I look at my Library, these fields are displayed correctly. Meaning I have documents that were created by John Smith, and modified by Jane Smith, showing up with the right metadata in the library after migration...but when I run my script to copy the documents to a new library, the output is not John Smith or Jane Smith but the "windowsAccount" user that performed the migration. Here is what my script looks like, in trying to get the right values to show.

$sWeb = Get-SPWeb $SourceWebURL
$sList = $sWeb.Lists | ? {$_.Title -eq $SourceLibraryTitle}
$dWeb = Get-SPWeb $DestinationWebURL
$dList = $dWeb.Lists | ? {$_.title -like $DestinationLibraryTitle}
$AllFolders = $sList.Folders
$RootFolder = $sList.RootFolder
$RootItems = $RootFolder.files

foreach($RootItem in $RootItems){
    $sBytes = $RootItem.OpenBinary()
    $dFile = $dList.RootFolder.Files.Add($RootItem.Name, $sBytes, $true)
    $AllFields = $RootItem.Item.Fields | ? {!($_.sealed)}
    $User = $sWeb.EnsureUser($RootItem.Author)
    $UserField = New-Object Microsoft.SharePoint.SPFieldUserValue($sWeb,$User.ID,$User.LoginName)
    write-host "User's Name: "$UserField.User.Name.ToString()
}

Has anyone experienced something like this before? If so, what is causing this and how can I get my script to start displaying the right data for "Created By" and "Modified By"?

Thanks,




Viewing all articles
Browse latest Browse all 7589

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>