msix.psd1
|
@{ ModuleVersion = '0.71.4' GUID = 'a3f1c2d4-8e5b-4f7a-9c3d-1b2e4f6a8c0d' Author = 'Sander de Wit' Description = 'Enterprise-grade MSIX packaging automation. PSF (TMurgent) injection with the full RegLegacy + MFR fixup palette, context menus, signing, CI/CD pipeline, compatibility investigation (procmon + DebugView trace parsing), sandbox debug helper, App Attach VHDX/CIM generator, Win32 App Isolation, AppData helpers, accelerator import, PSADT-style standard scripts, TMEditX-style heuristic auto-fixers (uninstaller / Run-key / VC runtime / capability / splash / alias / version-bump), package compare, and a Pester test suite.' PowerShellVersion = '5.1' RootModule = 'MSIX.psm1' FunctionsToExport = @( 'Add-MsixAlias', 'Add-MsixAppExtension', 'Add-MsixAppExtensionHost', 'Add-MsixAppIsolation', 'Add-MsixAutoPlayHandler', 'Add-MsixCapability', 'Add-MsixComServerExtension', 'Add-MsixDiagnosticTrace', 'Add-MsixEvidence', 'Add-MsixFileExplorerContextMenu', 'Add-MsixFileTypeAssociation', 'Add-MsixFirewallRule', 'Add-MsixFontExtension', 'Add-MsixFullTrustProcess', 'Add-MsixLegacyContextMenu', 'Add-MsixLoaderSearchPathOverride', 'Add-MsixManifestNamespace', 'Add-MsixPackageCertificate', 'Add-MsixPackageDependency', 'Add-MsixProtocolHandler', 'Add-MsixPsfV2', 'Remove-MsixPsf', 'Add-MsixService', 'Add-MsixShareTarget', 'Add-MsixShellHandlerExtension', 'Add-MsixShellVerbExtension', 'Add-MsixSplashScreen', 'Add-MsixStandardScript', 'Add-MsixStartMenuFolder', 'Add-MsixStartupTask', 'Add-MsixToastActivator', 'Add-MsixVcRuntimeBundle', 'Assert-MsixProcessSuccess', 'Compare-MsixPackage', 'Compare-MsixTrace', 'ConvertFrom-MsixTraceLine', 'ConvertFrom-MsixTraceToFinding', 'ConvertFrom-MsixYamlAccelerator', 'ConvertTo-MsixFinding', 'ConvertTo-MsixLegacyFinding', 'ConvertTo-MsixSarif', 'ConvertTo-MsixReportHtml', 'Copy-MsixHostAppDataIntoPackage', 'Export-MsixRemediationPlan', 'Dismount-MsixAppAttachImage', 'Find-MsixPlaybook', 'Get-MsixAliasCandidate', 'Get-MsixAppRuntimeVersion', 'Get-MsixCapabilityHint', 'Get-MsixCompatibilityReport', 'Get-MsixComServerEntry', 'Get-MsixContainerAppData', 'Get-MsixDebugRecommendation', 'Get-MsixDebugViewVersion', 'Get-MsixDesktopShortcutCandidate', 'Get-MsixFindingConfidence', 'Get-MsixFontCandidate', 'Get-MsixHeuristicFinding', 'Get-MsixInfo', 'Get-MsixIsolationCapability', 'Get-MsixIsolationAdvice', 'Test-MsixIsolation', 'Get-MsixKnownCapability', 'Get-MsixLimitation', 'Get-MsixManifest', 'Get-MsixManifestApplication', 'Get-MsixManifestApplications', 'Get-MsixManifestNamespaceUri', 'Get-MsixMfrKnownFolder', 'Get-MsixMgrVersion', 'Get-MsixNestedPackageCandidate', 'Get-MsixOrphanedAppData', 'Get-MsixPackageCertificateCandidate', 'Get-MsixPackageStorageSummary', 'Get-MsixPlaybook', 'Get-MsixPluginExtensionPoint', 'Get-MsixProcMonFailure', 'Get-MsixPsfBinariesVersion', 'Get-MsixPublisherId', 'Get-MsixRequiredAppRuntimeChannel', 'Get-MsixRunKeyEntry', 'Get-MsixSdkToolsVersion', 'Get-MsixServiceEntry', 'Get-MsixShellContextMenuEntry', 'Get-MsixShellHandlerEntry', 'Get-MsixStandardScript', 'Get-MsixStaticAnalysis', 'Get-MsixToolsRoot', 'Get-MsixTraceFailure', 'Get-MsixTraceOutput', 'Get-MsixUninstallerCandidate', 'Get-MsixUninstallRegistryEntry', 'Get-MsixUpdaterCandidate', 'Get-MsixVcRuntimeReference', 'Import-MsixAccelerator', 'Import-MsixRemediationPlan', 'Import-MsixSparseShellExtension', 'Initialize-MsixToolchain', 'Install-MsixAppRuntime', 'Install-MsixDebugView', 'Install-MsixMgr', 'Install-MsixProcMon', 'Install-MsixPsfBinary', 'Install-MsixSdkTool', 'Invoke-MsixAccelerator', 'Invoke-MsixAutoFix', 'Invoke-MsixAutoFixFromAnalysis', 'Invoke-MsixAutoFixLoop', 'Invoke-MsixCommand', 'Invoke-MsixContainerCommand', 'Invoke-MsixInvestigation', 'Invoke-MsixManifestTransform', 'Invoke-MsixPipeline', 'Invoke-MsixPlaybook', 'Invoke-MsixProcess', 'Invoke-MsixRemediationPlan', 'Invoke-MsixProcMonCapture', 'Invoke-MsixSelfSign', 'Invoke-MsixSigning', 'Merge-MsixFinding', 'Mount-MsixAppAttachImage', 'New-MsixAppAttachImage', 'New-MsixAppInstallerFile', 'New-MsixFinding', 'New-MsixManifestDocument', 'New-MsixModificationPackage', 'New-MsixRemediationPlan', 'New-MsixMfrLocalRule', 'New-MsixMfrTraditionalRule', 'New-MsixPsfArgument', 'New-MsixPsfConfig', 'New-MsixPsfDynamicLibraryConfig', 'New-MsixPsfEnvVarConfig', 'New-MsixPsfFileRedirectionConfig', 'New-MsixPsfJson', 'New-MsixPsfMfrConfig', 'New-MsixPsfRegLegacyConfig', 'New-MsixPsfStartScriptConfig', 'New-MsixPsfTraceConfig', 'New-MsixPsfWaitForDebuggerConfig', 'New-MsixSandboxConfig', 'New-MsixSelfSignedCertificate', 'New-MsixStandardScript', 'New-MsixWorkspace', 'Remove-MsixAppIsolation', 'Remove-MsixDesktopShortcut', 'Remove-MsixStartMenuEntry', 'Remove-MsixShellRegistryArtifact', 'Remove-MsixUninstallerArtifact', 'Remove-MsixUpdaterArtifact', 'Resolve-MsixDebugViewPath', 'Resolve-MsixMgrPath', 'Resolve-MsixProcMonPath', 'Save-MsixManifest', 'Select-MsixManifestNode', 'Select-MsixManifestNodes', 'Set-MsixBrandMetadata', 'Set-MsixFileSystemWriteVirtualization', 'Set-MsixInstalledLocationVirtualization', 'Set-MsixLogFile', 'Set-MsixLogLevel', 'Set-MsixManifestIdentity', 'Set-MsixManifestMaxVersionTested', 'Set-MsixManifestPublisher', 'Set-MsixMutablePackageDirectory', 'Set-MsixRegistryWriteVirtualization', 'Set-MsixScriptSignature', 'Set-MsixToolsRoot', 'Start-MsixDebugSession', 'Start-MsixSandbox', 'Test-MsixAgainstLimitation', 'Test-MsixAppAttachImage', 'Test-MsixManifest', 'Test-MsixPsfConfig', 'Test-MsixRemediationPlan', 'Test-MsixSignature', 'Update-MsixAppRuntime', 'Update-MsixDebugView', 'Update-MsixMgr', 'Update-MsixPackageVersion', 'Update-MsixProcMon', 'Update-MsixPsfBinary', 'Update-MsixSdkTool', 'Update-MsixSigner', 'Write-MsixLog' ) AliasesToExport = @( 'add-MsixPsf', 'Invoke-MsixSelfSignAndDebug', 'ConvertFrom-MsixTraceToFindings', 'Get-MsixAliasCandidates', 'Get-MsixCapabilityHints', 'Get-MsixComServerEntries', 'Get-MsixDebugRecommendations', 'Get-MsixDesktopShortcutCandidates', 'Get-MsixFontCandidates', 'Get-MsixHeuristicFindings', 'Get-MsixIsolationCapabilities', 'Get-MsixKnownCapabilities', 'Get-MsixLimitations', 'Get-MsixMfrKnownFolders', 'Get-MsixNestedPackageCandidates', 'Get-MsixPluginExtensionPoints', 'Get-MsixProcMonFailures', 'Get-MsixRunKeyEntries', 'Get-MsixPackageCertificateCandidates', 'Get-MsixServiceEntries', 'Get-MsixShellContextMenuEntries', 'Get-MsixShellHandlerEntries', 'Get-MsixStandardScripts', 'Get-MsixTraceFailures', 'Get-MsixUninstallerCandidates', 'Get-MsixUninstallRegistryEntries', 'Get-MsixUpdaterCandidates', 'Get-MsixVcRuntimeReferences', 'Get-PublisherIdFromPublisher', 'Install-MsixPsfBinaries', 'Install-MsixSdkTools', 'Invoke-MsixCmd', 'New-MsixPsfArguments', 'Remove-MsixDesktopShortcuts', 'Remove-MsixUninstallerArtifacts', 'start-MsixCmd', 'Test-MsixAgainstLimitations', 'Update-MsixPsfBinaries', 'Update-MsixSdkTools' ) PrivateData = @{ PSData = @{ Tags = @('MSIX','PSF','Packaging','AppX','WindowsApps', 'ContextMenu','Investigation','ProcMon','Accelerator', 'AppData','AppAttach','VHDX','CIM','AppIsolation', 'Sandbox','TMurgent','MFR','VcRuntime','Compare', 'TMEditX','Enterprise','CICD','Pester','PSADT') ProjectUri = 'https://github.com/microsoft/MSIX-PackageSupportFramework' ReleaseNotes = @' ## v0.71.4 ### New manifest mutators (review issues #108-#119) - Add-MsixService: packaged Windows services (desktop6 windows.service), auto-adds packagedServices/localSystemServices, SCM dependencies. - Add-MsixShellHandlerExtension: preview/property/thumbnail shell handlers (desktop2 on an FTA) + registry-free COM class in one call. - Add-MsixToastActivator: windows.toastNotificationActivation + ExeServer class so toast clicks re-activate the packaged app. - Add-MsixPackageDependency: framework dependencies (VCLibs, WindowsAppRuntime, ...) with auto-filled Microsoft publishers; MinVersion raised, never lowered. - Set-MsixMutablePackageDirectory: desktop6 mutable install-dir projection (+ modifiableApp capability). - Add-MsixFileTypeAssociation enriched: -Logo, -InfoTip, EditFlags (-OpenIsSafe/-AlwaysUnsafe), -Verbs (SupportedVerbs). ### Context menus - Add-MsixLegacyContextMenu -Schema desktop4|desktop9|Both: desktop9 (windows.fileExplorerClassicContextMenuHandler, the MS-documented / Advanced Installer shape, Win11 21H2+) is back as an opt-in; desktop4/desktop5 stays the default (Win10 1809+). ### Distribution (new) - New-MsixAppInstallerFile: .appinstaller generation with full update policy. - New-MsixModificationPackage: vendor-package customization via uap4:MainPackageDependency from a content folder. ### Static analysis / autofix integration - New scanners Get-MsixServiceEntry + Get-MsixShellHandlerEntry; isolation blockers (PSF, windows.comServer) surface as findings; autofix plans Add-MsixService / Add-MsixShellHandlerExtension / VCLibs-as-dependency (-VcRuntimeAsPackageDependency) and opt-in isolation (-AddAppIsolation with Remove-MsixPsf preparation). ### Niche extension points (#120) - Add-MsixAppExtensionHost / Add-MsixAppExtension (uap3 plugin contract pair), Add-MsixAutoPlayHandler (AutoPlay content/device), Add-MsixShareTarget (Share sheet), Add-MsixFullTrustProcess (UWP + Win32 companion), Add-MsixPackageCertificate (windows.certificates - replaces the capture certutil step; per-package store, removed on uninstall). - New scanner Get-MsixPackageCertificateCandidate: shipped-but-undeclared .cer/.crt surface as ManifestFix:PackageCertificate findings; autofix declares them via opt-in -DeclarePackageCertificates (+ -PackageCertificateStore, default TrustedPeople). ### Signing fail-closed (#77) - Invoke-MsixSigning -Signer SignerSignEx now throws the reserved-backend error even when -Pfx/-PfxPassword are supplied (the SignToolPfx parameter set no longer silently overrides an explicit -Signer). ### Fixes - Set-MsixBrandMetadata warns on pri-localized (ms-resource:) fields whose displayed value comes from resources.pri. - Isolation docs corrected for the two-mode model; every exported function now carries a Get-Help example. Full history: CHANGELOG.md. '@ } } } |