msix.psd1
|
@{ ModuleVersion = '0.73.0' 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, deployment-script templates, heuristic 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-MsixRuntimeDependency', '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-MsixModificationPackage', 'ConvertTo-MsixSarif', 'ConvertTo-MsixReportHtml', 'Copy-MsixHostAppDataIntoPackage', 'Expand-MsixBundle', 'Export-MsixRemediationPlan', 'Dismount-MsixAppAttachImage', 'Find-MsixPlaybook', 'Get-MsixAliasCandidate', 'Get-MsixAppRuntimeVersion', 'Get-MsixBundleInfo', 'Get-MsixBundledRuntime', '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-MsixBundleOperation', '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-MsixBundle', 'New-MsixAppInstallerFile', 'New-MsixFinding', 'New-MsixFrameworkPackage', '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-MsixDeployment', 'Test-MsixManifest', 'Test-MsixPsfConfig', 'Test-MsixRemediationPlan', 'Test-MsixSignature', 'Update-MsixAppRuntime', 'Update-MsixDebugView', 'Update-MsixMgr', 'Update-MsixPackageVersion', 'Update-MsixResourcePri', '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-MsixBundledRuntimes', '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', 'Enterprise','CICD','Pester') ProjectUri = 'https://github.com/microsoft/MSIX-PackageSupportFramework' ReleaseNotes = @' ## v0.73.0 ### Shared runtime framework packages (#130) - New-MsixFrameworkPackage: build a Framework=true package from a runtime folder (JRE/.NET/Python/shared libs) - one servicing point for N apps. - Add-MsixRuntimeDependency: PackageDependency + optional env wiring (-Runtime Java -> JAVA_HOME, DotNet -> DOTNET_ROOT, custom vars with the {frameworkRoot} token) against the computed WindowsApps root. DLL-based runtimes need no wiring (package-graph DLL search). - Get-MsixBundledRuntime (new scanner): trait-based detection of private JRE/.NET/Python copies with size accounting; BundledRuntime findings; autofix strips + wires via opt-in -DeduplicateBundledRuntime with an EXPLICIT framework identity (never guessed). ### Modification packages, completed (#131) - New-MsixModificationPackage -RegistryContent: layer SETTINGS, not just files - HKLM/HKCU key/value hashtables become Registry.dat / User.dat via the offline-registry helpers. - ConvertTo-MsixModificationPackage: productize the golden-image delta - diff vendor vs customized copy, stage added/changed files, emit the uap4:MainPackageDependency package. - Test-MsixDeployment -ModificationPackagePaths: the runtime loop installs modification packages after the main app and reports ModificationsInstalled on the verdict. (0.72.0 was source-only; this release also carries its features: msixbundle handling, resources.pri regeneration, Test-MsixDeployment, and the in-process SignerSignEx signing backend. Full history: CHANGELOG.md.) '@ } } } |