Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify that AppX reparse points do not support listing their targets anymore in v7.2+ #10168

Closed
3 tasks done
mklement0 opened this issue Jun 13, 2023 · 3 comments · Fixed by #10177
Closed
3 tasks done
Assignees
Labels
area-management Area - Microsoft.PowerShell.Management module area-providers Area - PowerShell providers issue-doc-bug Issue - error in documentation

Comments

@mklement0
Copy link
Contributor

mklement0 commented Jun 13, 2023

Prerequisites

  • Existing Issue: Search the existing issues for this repository. If there is an issue that fits your needs do not file a new one. Subscribe, react, or comment on that issue instead.
  • Descriptive Title: Write the title for this issue as a short synopsis. If possible, provide context. For example, "Typo in Get-Foo cmdlet" instead of "Typo."
  • Verify Version: If there is a mismatch between documentation and the behavior on your system, ensure that the version you are using is the same as the documentation. Check this box if they match or the issue you are reporting is not version specific.

Links

Summary

Support for determining the targets of AppX reparse points (aka AppExecLinks, such as winget / Microsoft Store-installed applications) was removed in v7.3, and, according to @sdwheeler, back-ported to v7.2

Details

The upshot for AppX reparse points in v7.2+ is:

  • They no longer print their target after -> in the formatted output.

  • Their type-native .LinkTarget property and their ETS .LinkType and .Target properties (an alias of .LinkTarget) are all $null; the type-native .ResolvedTarget property now returns the reparse point's own full path.

  • Visually, the l as the first character in the Mode column is now the only indicator that the item is a reparse point.

  • To programmatically identify an AppX reparse point now requires:

    • $item.Attributes.HasFlag([System.IO.FileAttributes] 'ReparsePoint') -and $null -eq $item.LinkType
    • If the ETS properties are present, more simply:
      • $item.Mode -like 'l*' -and $null -eq $item.LinkType

Suggested Fix

It's probably worth mentioning at least a condensed version of the above in the linked topics.

@mklement0 mklement0 added issue-doc-bug Issue - error in documentation needs-triage Waiting - Needs triage labels Jun 13, 2023
@sdwheeler sdwheeler added area-management Area - Microsoft.PowerShell.Management module area-providers Area - PowerShell providers review-shiproom Waiting - for Shiproom discussion and removed needs-triage Waiting - Needs triage labels Jun 14, 2023
@sdwheeler
Copy link
Contributor

This also affects 7.2.11. The change was backported to 7.2 at some point.

@mklement0 mklement0 changed the title Clarify that AppX reparse points do not support listing their targets anymore in v7.3+ Clarify that AppX reparse points do not support listing their targets anymore in v7.2+ Jun 14, 2023
@mklement0

This comment was marked as resolved.

@sdwheeler sdwheeler self-assigned this Jun 14, 2023
@sdwheeler
Copy link
Contributor

To programmatically identify an AppX reparse point now requires:

I talked with @SteveL-MSFT about getting the .LinkType member populated.

michaeltlombardi pushed a commit that referenced this issue Jun 15, 2023
* Document behavior for AppExecLinks

* Remove extra code fence
@sdwheeler sdwheeler removed the review-shiproom Waiting - for Shiproom discussion label Oct 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-management Area - Microsoft.PowerShell.Management module area-providers Area - PowerShell providers issue-doc-bug Issue - error in documentation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants