Get List Items In A Tree View

Create a ps1 extension file and save it in your local path.

Change the highlighted part with your site collection URL, List name etc. 

  1. <ol>  
  2. <li>Create a ps1 extension file and save it in your local path.</li>  
  3. </ol>  
  4. <p>Change the highlighted part with your site collection url, List name etc.</p>  
  5. <p>#============================================================</p>  
  6. <p># Function Get-FolderItems is a recursive function that will</p>  
  7. <p># get all items from a list and print it out like a Treeview</p>  
  8. <p>#============================================================</p>  
  9. <p>function Get-FolderItems([Microsoft.SharePoint.SPFolder]$folder, $level) {</p>  
  10. <p>#The following code is to simulate the treeview in the printout. It if for visual purposes only</p>  
  11. <p>if($level -eq $null) {</p>  
  12. <p>$level=0</p>  
  13. <p>}</p>  
  14. <p>$prestring = “”</p>  
  15. <p>for($x=0;$x -le $level;$x++) {</p>  
  16. <p>$prestring += “—”</p>  
  17. <p>}</p>  
  18. <p># Create query object</p>  
  19. <p>$query = New-Object Microsoft.SharePoint.SPQuery</p>  
  20. <p>$query.Folder = $folder</p>  
  21. <p># Get SPWeb object</p>  
  22. <p>$web = $folder.ParentWeb</p>  
  23. <p># Get SPList</p>  
  24. <p>$list = $web.Lists[$folder.ParentListId]</p>  
  25. <p># Get a collection of items in the specified $folder</p>  
  26. <p>$itemCollection = $list.GetItems($query)</p>  
  27. <p># If the folder is the root of the list, display information</p>  
  28. <p>if($folder.ParentListID -ne $folder.ParentFolder.ParentListID) {</p>  
  29. <p>Write-Host($folder.Name + ” [Root of the list with ” + $folder.ItemCount + ” item(s) in it]”)</p>  
  30. <p>}</p>  
  31. <p># Iterate through each item in the $folder – Note sub folders and list items are both considered items</p>  
  32. <p>foreach($item in $itemCollection) {</p>  
  33. <p># If the item is a folder</p>  
  34. <p>if($item.Folder -ne $null) {</p>  
  35. <p># Write the Subfolder information</p>  
  36. <p>Write-Host($prestring + “*” + $item.Name + ” [Folder Item | Parent Folder: ” + $folder.Name + ” | Contains ” + $folder.ItemCount + ” item(s)]”)</p>  
  37. <p># Call the Get-Items function recursively for the found sub-solder</p>  
  38. <p>Get-FolderItems $item.Folder ($level+1)</p>  
  39. <p>}</p>  
  40. <p># If the item is not a folder</p>  
  41. <p>if($item.Folder -eq $null) {</p>  
  42. <p># Write the item information</p>  
  43. <p>Write-Host($prestring + $item.Name + ” [Item | Parent Folder: ” + $folder.Name + “]”)</p>  
  44. <p>}</p>  
  45. <p>}</p>  
  46. <p>$web.dispose()</p>  
  47. <p>$web = $null</p>  
  48. <p>}</p>  
  49. <p>#============================================================</p>  
  50. <p># Function Get-Folder will return a SPFolder object based on</p>  
  51. <p># $webUrl string and a $listName string</p>  
  52. <p>#============================================================</p>  
  53. <p>function Get-Folder([string]$webUrl,[string]$listName) {</p>  
  54. <p># Use the Get-SPWeb CMDLET – it gives you the SPWeb object without having to create the SPSite object</p>  
  55. <p>$web = Get-SPWeb $stringUrl</p>  
  56. <p># Get your SPList</p>  
  57. <p>$list = $web.Lists[$stringListName]</p>  
  58. <p># Get the root folder containing items in your list</p>  
  59. <p>$folder = $list.RootFolder</p>  
  60. <p>$web.Dispose()</p>  
  61. <p>$web = $null</p>  
  62. <p>return ,$folder</p>  
  63. <p>}</p>  
  64. <p>#============================================================</p>  
  65. <p># Main procedural code</p>  
  66. <p>#============================================================</p>  
  67. <p>$stringUrl = “http://hvsp01/sites/HRMS”</p>  
  68. <p>$stringListName = “Calander”</p>  
  69. <p># Get the root folder for the List</p>  
  70. <p>$folder = Get-Folder $stringUrl $stringListName</p>  
  71. <p># Call the recursive Get-FolderItems function passing the root of your list. It will call itself again and again until it has gone through your entire structure</p>  
  72. <p>Get-FolderItems $folder2. Open Management Shell as an administrator.</p>  
  73. <ol start="3">  
  74. <li>Run the PS script using the path along with the file as shown.</li>  
  75. </ol>  
  76. <ol start="4">  
  77. <li>Here is the required output.</li>  
  78. </ol>  
  79. <p>Use <a href="http://htmlcheatsheet.com/" target="_blank" rel="nofollow">the HTML Cheat Sheet</a> for color picker, search for special HTML characters, get examples of the most common tags and generate any tags.</p>   

Get-FolderItems $folder2. Open Management Shell as an administrator.

Run PS script, using the path along with the file, as shown below.

SharePoint
Here, the required output is given below.

SharePoint