Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A experiência do Microsoft OneDrive de um utilizador armazena informações para ajudar o utilizador a localizar e navegar para o conteúdo que lhe interessa. A maioria destas informações pode ser acedida por utilizadores finais através das funcionalidades correspondentes no produto listadas na seguinte tabela:
Experiência | Dados armazenados | Acesso de Usuário |
---|---|---|
Itens compartilhados | Uma lista de documentos partilhados com o utilizador por outras pessoas. Também apresenta uma vista dos documentos que o utilizador partilhou com outras pessoas, que é uma vista das permissões que o utilizador definiu nos itens na respetiva conta do OneDrive. | NA partir do OneDrive de um usuário, selecione Compartilhados. |
Notificações por push para aplicativos móveis | Enviar notificações push para as aplicações oneDrive e SharePoint para dispositivos móveis do OneDrive e do SharePoint dos utilizadores, se configuradas. Isto inclui atividades relevantes, como novos ficheiros partilhados com os mesmos. Os administradores podem geri-los na página Definições do novo centro de administração do SharePoint. |
|
Sites e conteúdos seguidos | Os usuários podem seguir sites, documentos ou pessoas. Os sites seguidos podem ser exibidos usando as experiências no produto. |
Os sites seguidos podem ser visualizados e geridos na experiência Home Page do SharePoint. Esta experiência também mostra Sites Recentes . Na conta do OneDrive for Business de um usuário, é possível escolher o ícone de engrenagem Configurações, escolha Configurações do Site e, em seguida, Feed de atividades. No lado direito, eles podem clicar no tipo de conteúdo apropriado em estou seguindo. |
News feed | Uma lista de atividades de utilizador, incluindo conteúdo seguido, menções e alterações de perfil. Os utilizadores podem aceder-lhe através de experiências no produto. | Na conta do OneDrive de um usuário, é possível escolher o ícone de engrenagem Configurações, escolha Configurações do Site e, em seguida, Feed de atividades. As configurações de news feed podem ser gerenciadas como parte da experiência do perfil de usuário, que foi descrita anteriormente. |
Solicitações de acesso | Uma lista de acesso solicitado ao conteúdo. | Na conta do OneDrive de um usuário, é possível escolher o ícone de engrenagem Configurações, escolha Configurações do Site e, em seguida, Solicitações de Acesso e Convites |
Um administrador pode exportar estas listas com comandos PnP PowerShell e SharePoint Client-Side Object Model (CSOM) neste artigo. Todas as assemblagens CSOM necessárias estão incluídas no módulo SharePointPnPPowerShellOnline do Microsoft PowerShell.
Este é um script de exemplo e pode ser adaptado para satisfazer as necessidades da sua organização. Por exemplo, um administrador pode extrair as informações do user1@contoso.com através do seguinte procedimento.
Atribua a você mesmo permissões de administrador para acessar a conta do OneDrive do usuário. Isso pode ser feito no Centro de administração do Microsoft 365.
Instale os módulos necessários do Microsoft PowerShell:
Install-Module SharePointPnPPowerShellOnline
Install-Module CredentialManager
Execute o script ExportODBLists do PowerShell abaixo (ou uma versão personalizada do script):
$ODBSite = "https://contoso-my.sharepoint.com/personal/user1_contoso_com"
ExportODBLists.ps1 -siteUrl $ODBSite
O script exportará os dados armazenados para as funcionalidades descritas na tabela anterior para vários ficheiros CSV. O administrador pode rever ou redigir antes de os fornecer ao utilizador final.
O script cria os seguintes ficheiros CSV (se forem encontradas as listas correspondentes). O nome do ficheiro CSV corresponde ao título da lista.
Arquivo | Descrição |
---|---|
(Referência, <ID>).csv, em <que id> é uma sequência de letras e números | Lista de itens compartilhados com o usuário |
Como compartilhar Links.csv | Lista de links de compartilhamento gerados pelo usuário |
userActivityFeedHiddenListF4387007-BE61-432F-8BDB-85E6B9679E4B.csv | Lista de atividades relevantes |
notificationSubscriptionHiddenList6D1E55DA-2564-4A22-A5F9-6C4FCAFF53DE.csv | Lista de notificações enviadas a aplicativos móveis e IDs de aplicativo desses dispositivos |
Social.csv | Lista de conteúdo seguido |
MicroFeed.csv | Lista de itens de News feed |
Acessar Requests.csv | Lista de solicitações de acesso |
SharePointHomeCacheList.csv | Dados em cache do utilizador que navega para a Home Page do SharePoint. Isto é atualizado sempre que o utilizador navega para a Home Page do SharePoint. |
Script ExportODBLists
Copie os conteúdos abaixo e cole-os num ficheiro de texto. Guarde o ficheiro como ExportODBLists.ps1. O script pode exportar todos os campos das listas de destino com o exportAllFields
parâmetro . O script pode ser modificado para exportar todas as listas e para processar também outros sites.
Observação
Se vir um erro sobre uma assemblagem que não está a ser carregada, faça duplo marcar o caminho para a versão mais recente do Módulo PowerShellOnline do SharePointPnPPowerShellOnline, conforme definido nos parâmetros caminho do Add-Type. O caminho pode ser diferente no seu computador ou pode estar a utilizar uma versão diferente do módulo (a versão do módulo faz parte do caminho).
#ExportODBLists
#Exports OneDrive experience settings, stored in several SharePoint lists
param([string]$siteUrl, [bool]$exportAllFields=$false, [bool]$useStoredCreds=$true, [string]$exportFolder)
Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\SharePointPnPPowerShellOnline\2.26.1805.0\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\WindowsPowerShell\Modules\SharePointPnPPowerShellOnline\2.26.1805.0\Microsoft.SharePoint.Client.Runtime.dll"
if (!$siteUrl)
{
Write-Host "Please specify a OneDrive site using -siteUrl."
return
}
if ($useStoredCreds)
{
Write-Host "Retrieving stored Windows credentials for $siteUrl."
$cred = Get-StoredCredential -Target $siteUrl
if (!$cred)
{
Write-Host "Didn't find stored credential for $siteUrl. Please provide credentials to connect."
$cred = Get-Credential
}
}
else
{
$cred = Get-Credential
}
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($cred.UserName,$cred.Password)
$webURL = $siteUrl
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webURL)
$ctx.Credentials = $credentials
#root folders of lists to export
$SWMRoot = "Reference " #starts with this string
$notificationsRoot = "notificationSubscriptionHiddenList6D1E55DA25644A22"
$activityFeedRoot = "userActivityFeedHiddenListF4387007BE61432F8BDB85E6"
$accessRequestsRoot = "Access Requests"
$microfeedRoot = "PublishedFeed"
$SPHomeCacheRoot = "SharePointHomeCacheList"
$sharingLinksRoot = "Sharing Links"
$socialRoot = "Social"
#list fields to eexport
$SWMFields = @("ID","Created","Modified","Title","RemoteItemPath","OwnerDisplayName","OwnerSipAddress","RemoteItemFileSystemObjectType",
"RemoteItemCreatorDisplayName","RemoteItemCreatorSipAddress","RemoteItemCreatedDateTime",
"RemoteItemModifierDisplayName","RemoteItemModifierSipAddress","RemoteItemModifiedDateTime",
"SWMSharedByDisplayName","SWMSharedBySipAddress","SWMSharedByDateTime",
"RemoteItemLastAccessedDateTime","RemoteItemServerRedirectedUrl","RemoteItemServerRedirectedEmbedUrl")
$accessRequestsFields = @("ID","Created","Modified","Title","RequestId","RequestedObjectTitle","RequestedObjectUrl","PermissionType","PermissionLevelRequested","RequestDate",
"RequestedByDisplayName","RequestedBy","ReqByUser",
"RequestedForDisplayName","RequestedFor","ReqForUser",
"ApprovedBy","AcceptedBy","Status","Expires","WelcomeEmailSubject","WelcomeEmailBody","ExtendedWelcomeEmailBody","Conversation")
$microfeedFields = @("ID","Created","Modified","Title","MicroBlogType","PostAuthor","RootPostOwnerID","RootPostUniqueID","ReplyCoungett","Order","ContentData")
$notificationsFields = @("ID","Created","Modified","Title","SubscriptionId","PoolName","SecondaryPoolName","AppType","NotificationHandle",
"SecondsToExpiry","DestinationType","SubmissionDateTime","ExpirationDateTime","Locale","DeviceId","HostName","NotificationCounter",
"SingleSignOutKey","NotificationScenarios","ComplianceAssetId","AppAuthor","AppEditor")
$SPHomeCacheFields = @("ID","Created","Modified","Author","Editor","Title","Value")
$sharingLinksFields = @("ID","Created","Modified","Title","SharingDocId","ComplianceAssetId","CurrentLink","AvailableLinks")
$socialFields = @("ID","Created","Modified","Author","Editor","Title","Url","Hidden","HasFeed","SocialProperties")
$activityFeedFields = @("ID","Created","Modified","Title","ActivityId","ItemId","PushNotificationsSent","EmailNotificationSent","IsActorActivity","IsRead","Order",
"ItemChildCount","FolderChildCount","ActivityEventType","ActivityEvent")
#get lists in the web
try{
$lists = $ctx.web.Lists
$ctx.load($lists)
$ctx.executeQuery()
}
catch{
write-host "$($_.Exception.Message)" -foregroundcolor red
}
#identify the lists to export
$listsToExport = @()
foreach($list in $lists)
{
$ctx.load($list)
$ctx.load($list.RootFolder)
$ctx.executeQuery()
$listTitle = [string]$list.Title
$listRoot = $list.RootFolder.Name
Write-host ("Processing List: " + $list.Title + " with " + $list.ItemCount + " items").ToUpper() -ForegroundColor Yellow
Write-host (">> List Root Folder: " + $listRoot) -ForegroundColor Yellow
if ($listRoot.StartsWith($SWMRoot,"CurrentCultureIgnoreCase") -and $list.ItemCount -ge 1)
{
Write-Host ">> Found: Shared With Me List" -ForegroundColor Green
$listDetails = @{listType = "Shared With Me List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $SWMFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $notificationsRoot)
{
Write-Host ">> Found: Notifications List" -ForegroundColor Green
$listDetails = @{listType = "Notifications List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $notificationsFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $activityFeedRoot)
{
Write-Host ">> Found: User Activity Feed List" -ForegroundColor Green
$listDetails = @{listType = "User Activity Feed List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $activityFeedFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $accessRequestsRoot)
{
Write-Host ">> Found: Access Requests List" -ForegroundColor Green
$listDetails = @{listType = "Access Requests List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $accessRequestsFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $microfeedRoot)
{
Write-Host ">> Found: MicroFeed List" -ForegroundColor Green
$listDetails = @{listType = "Microfeed List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $microfeedFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $SPHomeCacheRoot)
{
Write-Host ">> Found: SharePoint Home Cache List" -ForegroundColor Green
$listDetails = @{listType = "SharePoint Home Cache List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $SPHomeCacheFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $sharingLinksRoot)
{
Write-Host ">> Found: Sharing Links List" -ForegroundColor Green
$listDetails = @{listType = "Sharing Links List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $sharingLinksFields}
$listsToExport += $listDetails
}
elseif ($listRoot -eq $socialRoot)
{
Write-Host ">> Found: Social List" -ForegroundColor Green
$listDetails = @{listType = "Social List"; listTitle = $listTitle; listRoot = $listRoot; listFields = $socialFields}
$listsToExport += $listDetails
}
}
#export list function
function exportList
{
Param ([string] $listTitle, [string[]]$listFields, [string]$exportFile)
Write-Host ("Exporting List: " + $listTitle).ToUpper() -ForegroundColor Green
Write-Host (">> File location: $exportFile") -ForegroundColor Green
#Get the list items
$list = $lists.GetByTitle($listTitle)
$listItems = $list.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$fieldColl = $list.Fields
$ctx.load($listItems)
$ctx.load($fieldColl)
$ctx.executeQuery()
if ($listFields) #if you're passing a specific set of fields, in a specific order, process those
{
#Array to Hold List Items
$listItemCollection = @()
#Fetch each list item value to export to excel
foreach($item in $listItems)
{
$exportItem = New-Object PSObject
Foreach ($field in $listFields)
{
if($NULL -ne $item[$field])
{
#Expand the value of Person or Lookup fields
$fieldType = $item[$field].GetType().name
if (($fieldType -eq "FieldLookupValue") -or ($fieldType -eq "FieldUserValue"))
{
$fieldValue = $item[$field].LookupValue
}
elseif ($fieldType -eq "FieldUrlValue")
{
$fieldValue = $item[$field].Url
}
else
{
$fieldValue = $item[$field]
}
}
$exportItem | Add-Member -MemberType NoteProperty -name $field -value $fieldValue
}
#Add the object with above properties to the Array
$listItemCollection += $exportItem
}
#Export the result Array to CSV file
$listItemCollection | Export-CSV $exportFile -NoTypeInformation
}
else #export all fields for the list
{
#Array to Hold List Items
$listItemCollection = @()
#Fetch each list item value to export to excel
foreach($item in $listItems)
{
$exportItem = New-Object PSObject
Foreach($field in $fieldColl)
{
if($NULL -ne $item[$field.InternalName])
{
#Expand the value of Person or Lookup fields
$fieldType = $item[$field.InternalName].GetType().name
if (($fieldType -eq "FieldLookupValue") -or ($fieldType -eq "FieldUserValue"))
{
$fieldValue = $item[$field.InternalName].LookupValue
}
elseif ($fieldType -eq "FieldUrlValue")
{
$fieldValue = $item[$field].Url
}
else
{
$fieldValue = $item[$field.InternalName]
}
}
$exportItem | Add-Member -MemberType NoteProperty -name $field.InternalName -value $fieldValue
}
#Add the object with above properties to the Array
$listItemCollection += $exportItem
}
#Export the result Array to CSV file
$listItemCollection | Export-CSV $exportFile -NoTypeInformation
}
}
#export the lists
foreach ($list in $listsToExport)
{
#if we have a valid folder for export, use it, otherwise export to the current directory
if ($exportFolder -and (Test-Path $exportFolder -PathType Container))
{
$filepath = Join-Path -Path $exportFolder -ChildPath ($list["listTitle"] + ".csv")
}
else
{
$filepath = ($list["listTitle"] + ".csv")
}
#export the lists
if ($exportAllFields)
{
exportList -listTitle $list["listTitle"] -exportFile $filepath
}
else
{
exportList -listTitle $list["listTitle"] -listFields $list["listFields"] -exportFile $filepath
}
}