将文件作为系统帐户上传到SharePoint Online

时间:2018-06-23 04:50:50

标签: powershell office365 sharepoint-online

如何通过PowerShell将文件上载文件创建文件夹到SharePoint Online,同时将其元数据(修改人)保留为“系统帐户” 而不是使用我的帐户在元数据上保存文件?

我知道我可以通过以下方式更改文件的元数据:

$user = Get-PnPUser -ErrorAction Stop | ? Email -eq $email 

$newFile["Author"]   = $user.id
$newFile["Editor"]   = $user.id
$newFile["Modified"] = $currentFile.LastWriteTimeUtc
$newFile["Created"]  = $currentFile.CreationTimeUtc

$newFile.Update()

但是文件夹呢?如果我将CSOM与PowerShell一起使用(请参见下文),则找不到修改“作者”和“编辑器”的元数据属性的方法:

$CSOM_credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($cred.UserName, $cred.Password)
$CSOM_context = New-Object Microsoft.SharePoint.Client.ClientContext("https://tenanturl.sharepoint.com")
$CSOM_context.Credentials = $CSOM_credentials

$ParentFolder = $CSOM_context.web.GetFolderByServerRelativeUrl("Samples")

$newFolder = $ParentFolder.Folders.Add("New Folder")
$ParentFolder.Context.ExecuteQuery()

$CSOM_context.Load($newFolder)
$CSOM_context.ExecuteQuery()

如果我使用PnP PowerShell (添加-PnPFolder),则会遇到相同的问题,我无法修改相同的元数据

1 个答案:

答案 0 :(得分:0)

您可以使用“SHAREPOINT\System”将作者和编辑者设置为系统帐户。

$Id = 1024
$item = Get-PnPListItem -List "listNmae" -Id $Id
Set-PnPListItem -List "listNmae" -Identity $Id -Values @{"Author" = "SHAREPOINT\System";
"Editor" = "SHAREPOINT\System";
"Modified" = $item.FieldValues.Modified 
} 

您也可以使用系统帐户用户

$sysaccount = Get-PnPUser | ? {$_.LoginName -eq "SHAREPOINT\System"}