You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
I think this is because you're using an absolute URL for Get-PnpFile instead of server-relative URL. I suppose the commandlet should either validate that it's not given an absolute URL, or just change absolute URLs to relative ones.
Based on my quick testing, the latter works fine in this case, but I'm not sure the commandlet should take the responsibility. Any thoughts, @gautamdsheth ?
koskila
added a commit
to koskila/pnppowershell
that referenced
this issue
Oct 25, 2024
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
The text was updated successfully, but these errors were encountered: