-
Notifications
You must be signed in to change notification settings - Fork 388
Description
I have performed extensive testing to at least within reason, ensure that this is not something I am going.
System:
Microsoft Windows Server 2019 Standard
10.0.17763
PS 7.4.5
PnP.PowerShell 2.12.0
Here are the exact steps to reproduce the issue:
create a file and ensure that in the name, it contains the literal characters "%20", for example "test%20file.txt"
(which is something that is now allowed to happen)
pre-check 1) check the copied "path" from the properties, it will look like this,
https://contoso.sharepoint.com/teams/testsite/testlibrary/test%2520file.txt
the file will open, via UI, without any problems
pre-check 2) use site search to locate the document, which will show it and open correctly via search
now let's run some scripts and see how the different errors appear
error path 1: get-pnpfile aslistitem
connect-pnponline -url $site -Interactive
get-pnpfile -url "https://contoso.sharepoint.com/teams/testsite/testlibrary/test%2520file.txt" -aslistitem
output:
Get-PnPFile: The object specified does not belong to a list.
error path 2: search results
$searchQuery = '(IsDocument:True AND path:https://contoso.sharepoint.com/teams/testsite/testlibrary)'
$searchResults = Submit-PnPSearchQuery -Query $searchQuery -MaxResults 500 -StartRow 0
write-host $searchResults.ResultRows.Path
output:
https://contoso.sharepoint.com/teams/testsite/testlibrary/test%20file.txt
note: this is already a red flag. the path is not encoded properly and will not work
get-pnpfile $searchResults.ResultRows.Path
output:
Get-PnPFile: File Not Found.
error path 3: file properties
connect-pnponline -url $site -Interactive
$file = get-pnpfile -url "https://contoso.sharepoint.com/teams/testsite/testlibrary/test%2520file.txt"
#note: so far, no errors
$context.load($file.ListItemAllFields)
$context.ExecuteQuery()
output:
MethodInvocationException: Exception calling "ExecuteQuery" with "0" argument(s): "The object id "site:REDACTED:web:REDACTED:file:/teams/testsite/https://contoso.sharepoint.com/teams/testsite/testlibrary/test%20file.txt" is invalid."
appreciate any help.
I'm not sure if this qualifies for a ticket, since it is likely related to the pnp commands and everything works within the user interface