shmuelie / shmuelie/powershell-modules

Expose guarded AppInstallManager configuration changes

Open
#240 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

blocked enhancement module:windows theme:native-interop
Dominant language
PowerShell
Stars
0
Forks
0
Avg merge
21m
Merged PRs (30d)
124

Description

Parent: #232

Dependencies and access restriction

Depends on #233, #234, #238. Implementation remains blocked until the supported-access gate and listed prerequisites are complete.

Microsoft documents AppInstallManager access as protected by a private capability restricted to Microsoft-developed apps. Do not bypass that restriction or treat runFullTrust/admin access alone as sufficient.

API scope

Supported writes to AcquisitionIdentity and AutoUpdateSetting, subject to the access/context contract. CanInstallForAllUsers is read-only in the C#/WinRT signature and belongs to getter issue #238; do not expose a setter despite the reference summary's misleading "gets or sets" wording.

Acceptance criteria

  • Expose only documented writable properties with explicit instance/user/device scope; validate values before any mutation.
  • Use the same explicitly identified manager context as related operations. Avoid unnoticed process-global state or settings that are immediately lost in a fresh manager.
  • Confirm each property change with ShouldProcess and disclose the target and effect. Preview performs no writes; intrusive update-policy/all-user implications are explicit.
  • Do not invent a setter for read-only CanInstallForAllUsers. Its value cannot grant privileges; do not elevate, impersonate another account or claim unavailable capability.
  • Preserve setter errors and partial multi-property outcomes; report applied versus not-applied changes without claiming unsupported rollback.
  • Where supported, verify observed values after writes. Tests use fake contexts and never change real device/user update policy or acquisition identity.

Shared delivery requirements

Follow the parent epic's compiled-C# contract, user-scope and capability/version gates. Include deterministic Pester 6.2+ coverage, comment-based help, public documentation and unreleased notes in the same implementation PR. Use fail-closed fake adapters for side effects; no real installs, entitlement grants or settings changes in CI. Preserve original errors and distinguish unavailable, unknown, requested and completed outcomes.

Documented API references

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with parent issue #232 and dependencies #233, #234, and #238, then review the AppInstallManager properties and compiled-C# contract described here. Use fake contexts and fail-closed adapters for deterministic Pester 6.2+ tests; done means supported writable properties validate and report changes without real device or user-policy effects, while preserving errors and partial outcomes.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, powershell
Domain
api, operating-systems, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.