Clear-Host # Module installieren Install-Module -Name SharePointPnPPowerShellOnline $webUrl = "https://yoursite.sharepoint.com/" $checkedoutListName = "AusgecheckteDokumente" $username = "m.musterman@deutschebahn.com" $password = "p@ssw0rd" $encpassword = convertto-securestring -String $password -AsPlainText -Force $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $encpassword $startWeb = Get-PnPWeb #********************************************** #* Write item in List if it is not checked in * #********************************************** function getCheckedOutFiles($web) { $checkedOutItemArray = @() Connect-PnPOnline -Url $web.Url -Credentials $cred $lists = Get-PnPLIst -Web $web -Includes {RootFolder.ServerRelativeUrl} | ? { $_.BaseType -eq "DocumentLibrary" } foreach ($list in $lists) { Write-Host "Working on list" $list.RootFolder.ServerRelativeUrl $context = Get-PnPContext $allfiles = $list.RootFolder.Files $context.Load($allfiles) $context.ExecuteQuery() foreach ( $file in $allfiles) { if ($file.CheckOutType -ne "None") { Write-Host "FileName" $file.Name $userExists = $false try { $checkedOutByUser = $file.CheckedOutByUser $context.Load($checkedOutByUser) $context.ExecuteQuery() $userExists = $true } catch { } $fileLink = ($web.Url + $list.DefaultViewUrl + "?ID=" + $item.ID).Replace(" ", "%20"); $listLink = ($web.Url + "/" + $list.RootFolder.ServerRelativeUrl).Replace(" ", "%20"); $psObject = New-Object PSObject -Property @{ Title = $file.Name; User = $checkedOutByUser.Email; UserExists = $userExists; File = $fileLink; List = $listLink; Web = $web.Title } $checkedOutItemArray += $psObject } } } return $checkedOutItemArray } Connect-PnPOnline -Url $webUrl -Credentials $cred $webs = Get-PnPSubWebs $checkedOutItems = @() Write-Host "Durchsuche " $startWeb.Title $checkedOutItems += getCheckedOutFiles -web $startWeb foreach ($web in $webs) { Write-Host "Durchsuche " $web.Title $checkedOutItems += getCheckedOutFiles -web $web } Connect-PnPOnline -Url $webUrl -Credentials $cred $docList = Get-PnPList -Identity ("Lists/" + $checkedoutListName); foreach($checkedOutItem in $checkedOutItems) { Add-PnPListItem -List $docList -Values @{ "Title" = $checkedOutItem.Title; "User" = $checkedOutItem.User; "UserExists" = $checkedOutItem.UserExists; "File" = $checkedOutItem.File; "List" = $checkedOutItem.List; "Web" = $checkedOutItem.Web } }