Skip to content

PackageManager.FindPackages: clarify user scope and parameter formats - #2531

Open
John Kennedy (GrantMeStrength) wants to merge 1 commit into
docsfrom
jken/findpackages-remarks-clarifications
Open

John Kennedy (GrantMeStrength) wants to merge 1 commit into
docsfrom
jken/findpackages-remarks-clarifications

Conversation

@GrantMeStrength

Copy link
Copy Markdown
Collaborator

Fixes MicrosoftDocs/windows-dev-docs#5503

Community feedback: the FindPackages overloads don't explain whether they return packages for all users or just the current user, and the packageName/packageFamilyName parameter formats are ambiguous — passing the wrong format silently returns an empty collection.

Changes

FindPackages()

  • Fixed incorrect description ('specified family' was copy-pasted from sibling overload) — this overload returns all packages
  • Added note that results span all users; pointed to FindPackagesForUser for per-user queries

FindPackages(String familyName)

  • Added [!NOTE] clarifying packageFamilyName = Package.Id.FamilyName (e.g. Microsoft.WindowsCalculator_8wekyb3d8bbwe), not Id.Name or Id.FullName
  • Called out that the wrong format silently returns an empty collection

FindPackages(String name, String publisher)

  • Remarks were nearly empty — filled in completely:
    • All-users scope now stated explicitly; pointer to FindPackagesForUser for per-user queries
    • packageName = Package.Id.Name (not FullName)
    • packagePublisher = Package.Id.Publisher (full X.500 DN, not PublisherId)
    • Recommends FindPackages(FamilyName) as a simpler, less error-prone alternative

Addresses community feedback (MicrosoftDocs/windows-dev-docs#5503):

1. FindPackages() — fix incorrect description ('specified family' copied
   from sibling overload); add note that results span all users.

2. FindPackages(String familyName) — add NOTE callout clarifying that
   packageFamilyName = Package.Id.FamilyName (not Name or FullName);
   wrong format silently returns empty collection.

3. FindPackages(String name, String publisher) — empty Remarks filled in:
   - All-users scope (not current user) now stated explicitly
   - packageName = Package.Id.Name (not FullName)
   - packagePublisher = Package.Id.Publisher (full X.500 DN, not PublisherId)
   - Recommend FindPackages(FamilyName) as simpler alternative

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The parameterless overload links to a filtered three-parameter method instead of the equivalent per-user overload.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Clarifies PackageManager.FindPackages scope and parameter formats.

Changes:

  • Corrects the parameterless overload description.
  • Documents all-user scope and expected package identifiers.
  • Adds examples and guidance for avoiding empty results.
File summaries
File Description
packagemanager_findpackages_331793265.md Clarifies family-name format.
packagemanager_findpackages_1597689551.md Documents scope and name/publisher formats.
packagemanager_findpackages_1246181969.md Corrects scope description and adds per-user guidance.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

## -remarks
This method requires administrative privileges. Otherwise, an **AccessDeniedException** is thrown.

This method returns packages installed for **all users** on the device. To retrieve packages for a specific user only, use [FindPackagesForUser](packagemanager_findpackagesforuser_292215772.md).
@jonwis

Copy link
Copy Markdown
Contributor

Hey Howard Kapustein (@DrusTheAxe) or sarjanas-msft can you check this? My recollection is that FindPackages() returns your packages, when called by a regular user. The FindPackagesForUser(...) is for multi-user systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge PR is being processed and awaiting review/approval. docs-editor-pilot review-team-triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Inconsistent behavior and parameter ambiguity in Windows.Management.Deployment.FindPackages API docs

3 participants