[SPO] Download all versions of a file using PNP
So, here goes:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
#Set Parameters $SiteURL = https://tenant.sharepoint.com/sites/SiteTest $FileRelativeURL = "/sites/SiteTest/TESTDOCLIB1/testexcel.xlsx" $DownloadPath = "C:\Temp\2" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive $Ctx = Get-PnPContext #Get the File $File = Get-PnPFile -Url $FileRelativeURL #Get File Versions $FileVersions = Get-PnPProperty -ClientObject $File -Property Versions If($FileVersions.Count -gt 0) { Foreach($Version in $FileVersions) { #Frame File Name for the Version $VersionFileName = "$($DownloadPath)\$($Version.VersionLabel)_$($File.Name)" #Get Contents of the File Version $VersionStream = $Version.OpenBinaryStream() $Ctx.ExecuteQuery() #Download File version to local disk [System.IO.FileStream] $FileStream = [System.IO.File]::Open($VersionFileName,[System.IO.FileMode]::OpenOrCreate) $VersionStream.Value.CopyTo($FileStream) $FileStream.Close() Write-Host -f Green "Version $($Version.VersionLabel) Downloaded to :" $VersionFileName } } Else { Write-host -f Yellow "No Versions Found!" } # SIG # Begin signature block # MIIQTwYJKoZIhvcNAQcCoIIQQDCCEDwCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUf9ooDwgLxwC7FUDRP/pEEYPV # zoiggg0uMIIGbTCCBFWgAwIBAgIQbHhbaf7xO+Fe08DSLHaMejANBgkqhkiG9w0B # AQsFADBWMQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVt # cyBTLkEuMSQwIgYDVQQDExtDZXJ0dW0gQ29kZSBTaWduaW5nIDIwMjEgQ0EwHhcN # MjEwNzMwMTI1NjEwWhcNMjIwNzMwMDY1OTQyWjCBkjELMAkGA1UEBhMCUk8xEDAO # BgNVBAcMB0NoaWFqbmExHjAcBgNVBAoMFU9wZW4gU291cmNlIERldmVsb3BlcjEu # MCwGA1UEAwwlT3BlbiBTb3VyY2UgRGV2ZWxvcGVyLCBBbmRyZWkgUmFjaGl0YTEh # MB8GCSqGSIb3DQEJARYSYW5kcmVpQHJhY2hpdGEubmV0MIIBojANBgkqhkiG9w0B # AQEFAAOCAY8AMIIBigKCAYEAlNccrTm7x5vOwO4gPPyzLN7m61P8sv7I/Etma8Li # zL48HeTFAyVPT7nfd4nUEO6hEkuCDOyKCwctpq7zu8nwVmxFCSNo2ZHknGy2hlWm # eLAVKzxL8WKpCaVKitglaxhtFQJki85Sz5pAYFWgZE/8+2MMZ/20+9QgPsgKKdrV # Ljp8Ck/IlAYOKH9nIuJgEt6ZdgEs0wxRDhhfBkLnkEAv5AGCgHTWNd/3hg0BlheO # Sbpll3sSa/Mihpj4XYv1xP3dyJiSnLxau78CbbFnlEQSVjjySCGvo6VzgTIBQz4M # D7AyKWdBB3D+NZzU05V3MVIU9OAahetSsv49/DnBrrFbUxrlCkg6YOJxMRs62YxB # GaRt7FzMj5O6QM8NWid/6xtr0XwCZhiBC1QcI37PtJiIRrvm+eeQ9glGivV5fZ6v # qjLSLoY/J2OCEuYmdfznbbwnwXiIITSqJWgoFZ+fILFhXpq+Yh+kqv7adSXXbMxV # mdsH0apAuGLmIQdwh5BWRW8tAgMBAAGjggF4MIIBdDAMBgNVHRMBAf8EAjAAMD0G # A1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jY3NjYTIwMjEuY3JsLmNlcnR1bS5wbC9j # Y3NjYTIwMjEuY3JsMHMGCCsGAQUFBwEBBGcwZTAsBggrBgEFBQcwAYYgaHR0cDov # L2Njc2NhMjAyMS5vY3NwLWNlcnR1bS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9y # ZXBvc2l0b3J5LmNlcnR1bS5wbC9jY3NjYTIwMjEuY2VyMB8GA1UdIwQYMBaAFN10 # XUwA23ufoHTKsW73PMAywHDNMB0GA1UdDgQWBBQWf81X2pnBSj/9XDZQrdj2b/U7 # djBLBgNVHSAERDBCMAgGBmeBDAEEATA2BgsqhGgBhvZ3AgUBBDAnMCUGCCsGAQUF # BwIBFhlodHRwczovL3d3dy5jZXJ0dW0ucGwvQ1BTMBMGA1UdJQQMMAoGCCsGAQUF # BwMDMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAQk/UVi6916kE # VuD75aTv5P0fFEIDg2Zh3MRbsxa0eadWukG41GhEz+rCbhtBE33Z3Ku8zv/ZYKWY # 0k7cJ4EKizlZJH9Nv5EszcN1MHJyZJxp7PQVIU38uF98QpBFB8zo0cdHb+mDUeOi # h2X+7UHYe2F6OBPZqPoxIoMaMpyYgSQB2orEja04D/vdPAYe9rnbm2FDzlvTNS2W # Z7ZgKrtj6ZRZ3MPXeDVbBLV2RzKW0YmVVXK3eoexkf43ZTQ6xKSZBHNybkloy24i # VqjuUeB2Y/SUJbJ5TjUxKfn9yPMpEZ6KqKlLAlJD1NWy6HuZaRorwPIvKGKff2ZJ # cN8eMfimfVnP8tHpocck2q37KE/Wn5AOs8PxpTmFRsZ0XbIZmteelStH+uUjNza7 # uTeKcfVz1LkSqOTAUYJOS5Aqoce0zcpak1eMIrgDV+epSIexNurXl3xtHppBLErv # AB/l9szqkDxiiVAIX9/EN6znEoHcWt84eVWckYkv0FWHoZwpPW698aLBthph23S1 # vAHtiosTVDDf9t6QvjQrMvk0mt4jLZ/yGtd+c//oyhpTvLHnbSp5oUujij214eto # +V8iSqsQbS9/OylFzJYCaay/wEzZtA8VDaKIOkDDlWBon1/8h18cUQ5Syz0o/YNj # u4vFhB8JTVnf6iLSccIHLEU0lukQvv4wgga5MIIEoaADAgECAhEAmaOACiZVO2Wr # 3G6EprPqOTANBgkqhkiG9w0BAQwFADCBgDELMAkGA1UEBhMCUEwxIjAgBgNVBAoT # GVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0 # aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0 # d29yayBDQSAyMB4XDTIxMDUxOTA1MzIxOFoXDTM2MDUxODA1MzIxOFowVjELMAkG # A1UEBhMCUEwxITAfBgNVBAoTGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEkMCIG # A1UEAxMbQ2VydHVtIENvZGUgU2lnbmluZyAyMDIxIENBMIICIjANBgkqhkiG9w0B # AQEFAAOCAg8AMIICCgKCAgEAnSPPBDAjO8FGLOczcz5jXXp1ur5cTbq96y34vuTm # flN4mSAfgLKTvggv24/rWiVGzGxT9YEASVMw1Aj8ewTS4IndU8s7VS5+djSoMcbv # IKck6+hI1shsylP4JyLvmxwLHtSworV9wmjhNd627h27a8RdrT1PH9ud0IF+njvM # k2xqbNTIPsnWtw3E7DmDoUmDQiYi/ucJ42fcHqBkbbxYDB7SYOouu9Tj1yHIohzu # C8KNqfcYf7Z4/iZgkBJ+UFNDcc6zokZ2uJIxWgPWXMEmhu1gMXgv8aGUsRdaCtVD # 2bSlbfsq7BiqljjaCun+RJgTgFRCtsuAEw0pG9+FA+yQN9n/kZtMLK+Wo837Q4QO # ZgYqVWQ4x6cM7/G0yswg1ElLlJj6NYKLw9EcBXE7TF3HybZtYvj9lDV2nT8mFSkc # SkAExzd4prHwYjUXTeZIlVXqj+eaYqoMTpMrfh5MCAOIG5knN4Q/JHuurfTI5XDY # O962WZayx7ACFf5ydJpoEowSP07YaBiQ8nXpDkNrUA9g7qf/rCkKbWpQ5boufUnq # 1UiYPIAHlezf4muJqxqIns/kqld6JVX8cixbd6PzkDpwZo4SlADaCi2JSplKShBS # ND36E/ENVv8urPS0yOnpG4tIoBGxVCARPCg1BnyMJ4rBJAcOSnAWd18Jx5n858JS # qPECAwEAAaOCAVUwggFRMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFN10XUwA # 23ufoHTKsW73PMAywHDNMB8GA1UdIwQYMBaAFLahVDkCw6A/joq8+tT4HKbROg79 # MA4GA1UdDwEB/wQEAwIBBjATBgNVHSUEDDAKBggrBgEFBQcDAzAwBgNVHR8EKTAn # MCWgI6Ahhh9odHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYTIuY3JsMGwGCCsGAQUF # BwEBBGAwXjAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNv # bTAyBggrBgEFBQcwAoYmaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBsL2N0bmNh # Mi5jZXIwOQYDVR0gBDIwMDAuBgRVHSAAMCYwJAYIKwYBBQUHAgEWGGh0dHA6Ly93 # d3cuY2VydHVtLnBsL0NQUzANBgkqhkiG9w0BAQwFAAOCAgEAdYhYD+WPUCiaU58Q # 7EP89DttyZqGYn2XRDhJkL6P+/T0IPZyxfxiXumYlARMgwRzLRUStJl490L94C9L # GF3vjzzH8Jq3iR74BRlkO18J3zIdmCKQa5LyZ48IfICJTZVJeChDUyuQy6rGDxLU # UAsO0eqeLNhLVsgw6/zOfImNlARKn1FP7o0fTbj8ipNGxHBIutiRsWrhWM2f8pXd # d3x2mbJCKKtl2s42g9KUJHEIiLni9ByoqIUul4GblLQigO0ugh7bWRLDm0CdY9rN # LqyA3ahe8WlxVWkxyrQLjH8ItI17RdySaYayX3PhRSC4Am1/7mATwZWwSD+B7eMc # ZNhpn8zJ+6MTyE6YoEBSRVrs0zFFIHUR08Wk0ikSf+lIe5Iv6RY3/bFAEloMU+vU # BfSouCReZwSLo8WdrDlPXtR0gicDnytO7eZ5827NS2x7gCBibESYkOh1/w1tVxTp # V2Na3PR7nxYVlPu1JPoRZCbH86gc96UTvuWiOruWmyOEMLOGGniR+x+zPF/2DaGg # K2W1eEJfo2qyrBNPvF7wuAyQfiFXLwvWHamoYtPZo0LHuH8X3n9C+xN4YaNjt2yw # zOr+tKyEVAotnyU9vyEVOaIYMk3IeBrmFnn0gbKeTTyYeEEUz/Qwt4HOUBCrW602 # NCmvO1nm+/80nLy5r0AZvCQxaQ4xggKLMIIChwIBATBqMFYxCzAJBgNVBAYTAlBM # MSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMTG0Nl # cnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQQIQbHhbaf7xO+Fe08DSLHaMejAJBgUr # DgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZBgkqhkiG9w0BCQMx # DAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkq # hkiG9w0BCQQxFgQU3+ZnEcAVK+l7xvOBn1nSHx4QqAkwDQYJKoZIhvcNAQEBBQAE # ggGAUz4DpvEV5xLGEBWsB01xObD6GGlz7juGWL0O1tYIbfOEg03Hx4oUNpIUz5Lv # TFbjIRAaMpg9luoTDrMDPp2vnzILjlVvreYpqbdpYQyoE1aO1Nl0nlaOs5vwjz6o # ZfMXsH0Wng5gEkWT0xptWpjZ2RYOFuMaqZ/ez0kSfdH32feUrEaFAQGrVFADYBaB # t39nN8Mml+2kKjlnV9gtMyqBgtObblUEJbdMPZqFG98muU49d0iiyzzEfb/BUPgu # WrRn18UHIxN/2rP5fvkefx4srerIc/K16FQGq+M8O92sBQfSvZKowidpqj48Rpnb # AvUTs1d0YzKDnGAT0zJxdFfv3ohpBBHx8QOBYqDhIqeA16EZner0cjOpre9J7imB # 86Kd5gNXqY4uzoHxg3LVBWWqh5cVcM6D4Jfn5KeJlu+50ctu7vkm7tiN0x0kdgTn # 2b4eh6IUP6Wt3l5nYl7E796AGyyfgLdj0j9friUiYAkfftftMOlXlgjIO9MSXn6p # wSfz # SIG # End signature block |
The output will look similar to: Enjoy!
