Nice post for Upload files from file share location to sharepoint library or folder inside a library. [http://naga1208.blogspot.in/2015/10/upload-files-to-sharepoint-site-using.html][1] [1]: http://naga1208.blogspot.in/2015/10/upload-files-to-sharepoint-site-using.html Steps to upload files from file share location to sharepoint library with relevant metadata $webUrl = "http://contoso.com"; #http://contoso.com Replace with your Site Url $docLibraryName = "Documents"; ##Documents - Replace with your library name $docFolderName = "SharePoint"; ##SharePoint - Replace with Folder name if you have sub folders in Library $docNumber = "SeachDocument.docx"; ##SeachDocument.docx - Replace with File name which you will have in file share location try { $inputRowCollection = Get-ChildItem $DocumentsRepositoryPath -Recurse | Where-Object {$_.Name -like $docNumber+ "*"} if($inputRowCollection.Count -eq 0) { $row.IsMigrated = "File Missing" } if($inputRowCollection.Count -eq 1) { $row.IsMigrated = UploadFileInLibrary $webUrl $docLibraryName $inputRowCollection.PSPath $docFolderName } elseif($inputRowCollection.Count -ge 1) { $row.IsMigrated = "Duplicate Documents" } } catch { Write-Host "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception -f Red; Write-Output "File Path : ($inputRowCollection.PSPath) - Error ($documentData): "$_.Exception >> $ExceptionLogFile $logData = $logData + "`tNA`t" + $_.Exception + "`tFail`tNA" } #Function to upload Document into SharePoint library function UploadFileInLibrary { [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipeline=$true)] [string]$webUrl, [Parameter(Mandatory=$true)] [string]$DocLibName, [Parameter(Mandatory=$true)] [string]$FilePath, [Parameter(Mandatory=$false)] [string]$FolderName ) try { #region Code for Migration $spWeb = Get-SPWeb -Identity $webUrl $List = $spWeb.Lists[$DocLibName] $folder = $List.RootFolder if($FolderName -ne "") { $folder = $list.RootFolder.SubFolders[$FolderName] } $FileName = $FilePath.Substring($FilePath.LastIndexOf("\")+1) $File= Get-ChildItem $FilePath $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension [Microsoft.SharePoint.SPFile]$spFile = $spWeb.GetFile($folder.Url + "/" + $docNumber+$fileExtension) $flagConfirm = 'y' if($spFile.Exists -eq $true) { # $flagConfirm = Read-Host "File $FileName already exists in library $DocLibName, do you want to upload a new version(y/n)?" return "Document Exist." } if ($flagConfirm -eq 'y' -or $flagConfirm -eq 'Y') { $spWeb.AllowUnsafeUpdates = $true; $fileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead() $fileExtension = ([System.IO.FileInfo] (Get-Item $File.FullName)).Extension #Add file write-host -NoNewLine -f yellow "Copying file " $File.Name " to " $folder.ServerRelativeUrl "..." [Microsoft.SharePoint.SPFile]$spFile = $folder.Files.Add($folder.Url + "/" + $docNumber+$fileExtension, [System.IO.Stream]$fileStream, $true) write-host -f Green "...Success!" #Close file stream $fileStream.Close() write-host -NoNewLine -f yellow "Update file properties " $spFile.Name "..." #Check the whether exists or not in site $docContentType = $docContentType if($docContentType -eq $IMS) { $docContentType = $List.ContentTypes[$docContentType] $spFile.Item["ContentTypeId"] = $docContentType.Id; $spFile.Item["Content Type"] = $docContentType.Name; $spFile.Item["Name"] = $docNumber $spFile.Item["Title"] = $docTitle $spFile.Item.Update() write-host -f Green "...Success!" $spFile.CheckIn("Checked In By Administrator"); Write-Host "$($spFile.Name) Checked In" -ForeGroundColor Green } $spWeb.AllowUnsafeUpdates = $false; } return "Uploaded"; #endregion } catch { Write-Host "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method : "$_.Exception -f Red; Write-Output "File Path : ($inputRowCollection.PSPath) - Error in DocumentsMigration method: "$_.Exception >> $ExceptionLogFile return "Error while uploading"; } }