René's URL Explorer Experiment


Title: Windows (NTFS): Inconsistent support for the long-path prefix (\\?\) in filesystem paths · Issue #10805 · PowerShell/PowerShell · GitHub

Open Graph Title: Windows (NTFS): Inconsistent support for the long-path prefix (\\?\) in filesystem paths · Issue #10805 · PowerShell/PowerShell

X Title: Windows (NTFS): Inconsistent support for the long-path prefix (\\?\) in filesystem paths · Issue #10805 · PowerShell/PowerShell

Description: Note: This is a generalization of #4439. @SteveL-MSFT, if you agree, please close the latter. Prefixing full, normalized, native filesystem paths with \\?\ allows targeting filesystem items whose path is longer than the legacy limit of 2...

Open Graph Description: Note: This is a generalization of #4439. @SteveL-MSFT, if you agree, please close the latter. Prefixing full, normalized, native filesystem paths with \\?\ allows targeting filesystem items whose p...

X Description: Note: This is a generalization of #4439. @SteveL-MSFT, if you agree, please close the latter. Prefixing full, normalized, native filesystem paths with \\?\ allows targeting filesystem items whose p...

Opengraph URL: https://github.com/PowerShell/PowerShell/issues/10805

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Windows (NTFS): Inconsistent support for the long-path prefix (\\\\?\\) in filesystem paths","articleBody":"Note: This is a generalization of #4439. @SteveL-MSFT, if you agree, please close the latter.\r\n\r\nPrefixing full, normalized, native filesystem paths with `\\\\?\\` allows targeting filesystem items whose path is longer than the legacy limit of 259 characters.\r\n\r\n**Update**: \r\n * Prefix `\\\\?\\` isn't _needed_ in PS Core (in .NET Core altogether), so long paths just work as-is, even if not enabled system-wide. \r\n * However, old code may still use it, and even new code may have to, when creating cross-edition scripts.\r\n * Additionally, and separately, `\\\\?\\`  is useful for targeting files or directories with _irregular names_, such as ones with _trailing spaces_, so you can remove them with `Remove-Item`, for instance.\r\n\r\nAs an aside: In Windows 10 you can now opt in system-wide to support long paths, but individual applications must _also_ opt in (PowerShell indirectly does) - see https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/\r\n\r\nAs of PowerShell Core 7.3.0-preview.2, the **inconsistent support for `\\\\?\\` is as follows**:\r\n\r\n* With the **`-Path`** parameter, **`\\\\?\\` isn't supported _at all_** , so wildcard expressions cannot be used. \r\n  * `Get-Item` and `Get-ChildItem` output nothing, and `Remove-Item` is a quiet no-op (silent failure) too. \r\n\r\n* With the **`-LiteralPath`** parameter in combination with `\\\\?\\`:\r\n  *  Only _file paths_ can be targeted.\r\n  * _Directory_ paths exhibit the following behavior:\r\n     * `Get-Item` and `Remove-Item` complain about not finding the path. \r\n        * Adding `-Force` makes `Get-Item` output a broken `DirectoryInfo` instance.  \r\n        * Using `Remove-Item` without `-Recurse` on a nonempty directory presents the usual confirmation prompt (implying the ability to recognize the path as existent), but then fails on confirmation.\r\n     * `Get-ChildItem` reports the _root_ directory's content instead(!)\r\n\r\nAdditionally, `\\\\?\\` paths do _not_ work in the following cases:\r\n\r\n*  With  `\u003e` / `\u003e\u003e`, which implicitly behave like `Out-File -Path` - see #4726\r\n\r\n* \u003cdel\u003eIn the same vein, _invocation of an executable_ - whether with or without `\u0026` - is broken (possibly related to #4726 as well).\u003c/del\u003e (no longer a problem as of PowerShell Core 7.3.0-preview.2)\r\n\r\n* \u003cdel\u003e`Start-Process`\u003c/del\u003e (no longer a problem as of PowerShell Core 7.3.0-preview.2)\r\n\r\n* `Set-Location` (not even with `-LiteralPath`)\r\n\r\nNote: \r\n\r\n* Some of these problems are regressions from Windows PowerShell, where only the invocation / `Start-Process` tests fail and `\u003e` only with a _new_ file.\r\n\r\n* I haven't looked into whether invoking an _executable_ with an overly long path is supported in principle by the underlying APIs.\r\n\r\n# Steps to reproduce\r\n\r\nRun the following from a Pester test script (`*.Tests.ps1`) on Windows:\r\n\r\n```powershell\r\nDescribe \"Support for long paths, via \\\\?\\\" {\r\n  BeforeAll {\r\n    Push-Location (Convert-Path TestDrive:\\)\r\n    $dirPath = $PWD.ProviderPath\r\n    $PrefixedDir = \"\\\\?\\$dirPath\"\r\n    $fileName = ('a' * 248 + '.cmd')\r\n    $fileNameAlt = ('b' * 248)\r\n    $PrefixedFullName = \"$PrefixedDir\\$fileName\"\r\n    $PrefixedFullNameAlt = \"$PrefixedDir\\$fileNameAlt\"\r\n    # Create the file with the overly long path using .NET,\r\n    # to avoid issues with New-Item\r\n    [IO.File]::WriteAllText($PrefixedFullName, '')\r\n  }\r\n  It \"Get-ChildItem -LiteralPath\" {\r\n    Get-ChildItem -LiteralPath $PrefixedFullName | % FullName | Should -Be $PrefixedFullName\r\n  }\r\n  It \"Get-ChildItem -Path\" {\r\n    Get-ChildItem -Path $PrefixedFullName | % FullName | Should -Be $PrefixedFullName\r\n  }\r\n  It \"Remove-Item -LiteralPath\" {\r\n    { Remove-Item -LiteralPath $PrefixedFullName } | Should -Not -Throw\r\n    # Recreate the file.\r\n    [IO.File]::WriteAllText($PrefixedFullName, '')\r\n  }\r\n  It \"Remove-Item -Path\" {\r\n    { Remove-Item -Path $PrefixedFullName } | Should -Not -Throw\r\n    # Recreate the file, if necessary\r\n    [IO.File]::WriteAllText($PrefixedFullName, '')\r\n  }\r\n  It \"\u003e with new file\" {\r\n    { '' \u003e  $PrefixedFullNameAlt } | Should -Not -Throw\r\n  }\r\n  It \"\u003e / \u003e\u003e with existing file.\" {\r\n    { '@echo Hi.' \u003e  $PrefixedFullName } | Should -Not -Throw\r\n    { 'REM ' \u003e\u003e $PrefixedFullName } | Should -Not -Throw\r\n  }\r\n  It \"Invocation / \u0026\" {\r\n    \u0026 $PrefixedFullName | Should -Be 'Hi.'\r\n  }\r\n  It \"Start-Process\" {\r\n    Start-Process -FilePath $PrefixedFullName\r\n  }\r\n  It \"New-Item\" {\r\n    { New-Item -Force -Type File $PrefixedFullName } | Should -Not -Throw\r\n  }\r\n  It \"Set-Location -LiteralPath\" {\r\n    { Set-Location -EA Stop -LiteralPath $PrefixedDir } | Should -Not -Throw\r\n  }\r\n  It \"Set-Location -Path\" {\r\n    { Set-Location -EA Stop -Path $PrefixedDir } | Should -Not -Throw\r\n  }\r\n  AfterAll {\r\n    # Use .NET to remove the overly long path, so that Pester itself doesn't \r\n    # fail on trying to remove the dir. underlying TestDrive:\r\n    [IO.File]::Delete($PrefixedFullName)\r\n    [IO.File]::Delete($PrefixedFullNameAlt)\r\n    Pop-Location\r\n  }\r\n}\r\n```\r\n\r\n# Expected behavior\r\n\r\nAll tests should pass.\r\n\r\n# Actual behavior\r\n\r\nAll tests but the first one fail, with various error messages.\r\n\r\n# Environment data\r\n\r\n```none\r\nPowerShell Core 7.0.0-preview.4\r\n```\r\n","author":{"url":"https://github.com/mklement0","@type":"Person","name":"mklement0"},"datePublished":"2019-10-16T16:51:10.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":38},"url":"https://github.com/10805/PowerShell/issues/10805"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:1d1efefd-6643-044e-f9b8-f90f7677f8fc
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idC44E:363855:136518C:1C40310:6A576CFF
html-safe-nonce0e3461d69a58307bbd132cf0968887d8ebffdc370f6b5589a9f29cc618109c64
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNDRFOjM2Mzg1NToxMzY1MThDOjFDNDAzMTA6NkE1NzZDRkYiLCJ2aXNpdG9yX2lkIjoiMTcxMzYxNzk5Nzg0NjI0NDYwNyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac9b4fb59e177dd0f0d7f214973e0c3e4d2c4e54267751257577c00cfa721a9276
hovercard-subject-tagissue:507972241
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PowerShell/PowerShell/10805/issue_layout
twitter:imagehttps://opengraph.githubassets.com/b6589ffe94790679cabb485f0a5a21026286db5e3bfff037fcee333d1b486ddf/PowerShell/PowerShell/issues/10805
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/b6589ffe94790679cabb485f0a5a21026286db5e3bfff037fcee333d1b486ddf/PowerShell/PowerShell/issues/10805
og:image:altNote: This is a generalization of #4439. @SteveL-MSFT, if you agree, please close the latter. Prefixing full, normalized, native filesystem paths with \\?\ allows targeting filesystem items whose p...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamemklement0
hostnamegithub.com
expected-hostnamegithub.com
None4e7a7296a3830877cf21a6ad2a972c9e618a48915e03966cf0c53eb08e5aad98
turbo-cache-controlno-preview
go-importgithub.com/PowerShell/PowerShell git https://github.com/PowerShell/PowerShell.git
octolytics-dimension-user_id11524380
octolytics-dimension-user_loginPowerShell
octolytics-dimension-repository_id49609581
octolytics-dimension-repository_nwoPowerShell/PowerShell
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id49609581
octolytics-dimension-repository_network_root_nwoPowerShell/PowerShell
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release1b5a9c55f39dd27607a574cdc272552f20236b44
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/PowerShell/PowerShell/issues/10805#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FPowerShell%2FPowerShell%2Fissues%2F10805
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FPowerShell%2FPowerShell%2Fissues%2F10805
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=PowerShell%2FPowerShell
Reloadhttps://github.com/PowerShell/PowerShell/issues/10805
Reloadhttps://github.com/PowerShell/PowerShell/issues/10805
Reloadhttps://github.com/PowerShell/PowerShell/issues/10805
Please reload this pagehttps://github.com/PowerShell/PowerShell/issues/10805
PowerShell https://github.com/PowerShell
PowerShellhttps://github.com/PowerShell/PowerShell
Notifications https://github.com/login?return_to=%2FPowerShell%2FPowerShell
Fork 8.4k https://github.com/login?return_to=%2FPowerShell%2FPowerShell
Star 54.4k https://github.com/login?return_to=%2FPowerShell%2FPowerShell
Code https://github.com/PowerShell/PowerShell
Issues 1.2k https://github.com/PowerShell/PowerShell/issues
Pull requests 288 https://github.com/PowerShell/PowerShell/pulls
Discussions https://github.com/PowerShell/PowerShell/discussions
Actions https://github.com/PowerShell/PowerShell/actions
Projects https://github.com/PowerShell/PowerShell/projects
Security and quality 3 https://github.com/PowerShell/PowerShell/security
Insights https://github.com/PowerShell/PowerShell/pulse
Code https://github.com/PowerShell/PowerShell
Issues https://github.com/PowerShell/PowerShell/issues
Pull requests https://github.com/PowerShell/PowerShell/pulls
Discussions https://github.com/PowerShell/PowerShell/discussions
Actions https://github.com/PowerShell/PowerShell/actions
Projects https://github.com/PowerShell/PowerShell/projects
Security and quality https://github.com/PowerShell/PowerShell/security
Insights https://github.com/PowerShell/PowerShell/pulse
Windows (NTFS): Inconsistent support for the long-path prefix (\\?\) in filesystem pathshttps://github.com/PowerShell/PowerShell/issues/10805#top
Area-FileSystem-Providerspecific to the FileSystem providerhttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22Area-FileSystem-Provider%22
Issue-BugIssue has been identified as a bug in the producthttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22Issue-Bug%22
WG-Engine-Providersbuilt-in PowerShell providers such as FileSystem, Certificates, Registry, etc.https://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22WG-Engine-Providers%22
WG-NeedsReviewNeeds a review by the labeled Working Grouphttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22WG-NeedsReview%22
https://github.com/mklement0
mklement0https://github.com/mklement0
on Oct 16, 2019https://github.com/PowerShell/PowerShell/issues/10805#issue-507972241
#4439https://github.com/PowerShell/PowerShell/issues/4439
@SteveL-MSFThttps://github.com/SteveL-MSFT
https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/
Some scripts / files with wildcard metacharacter [ in the file name or path cannot be invoked or redirected to #4726https://github.com/PowerShell/PowerShell/issues/4726
Some scripts / files with wildcard metacharacter [ in the file name or path cannot be invoked or redirected to #4726https://github.com/PowerShell/PowerShell/issues/4726
Area-FileSystem-Providerspecific to the FileSystem providerhttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22Area-FileSystem-Provider%22
Issue-BugIssue has been identified as a bug in the producthttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22Issue-Bug%22
WG-Engine-Providersbuilt-in PowerShell providers such as FileSystem, Certificates, Registry, etc.https://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22WG-Engine-Providers%22
WG-NeedsReviewNeeds a review by the labeled Working Grouphttps://github.com/PowerShell/PowerShell/issues?q=state%3Aopen%20label%3A%22WG-NeedsReview%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.