Based on my previous post, I created a small project on my github and adjusted existing codebase to provide a simplistic PowerShell module. The code has been reorganized into proper units with exported functions. Here is a sample usage:
$Header = @" <style> TABLE {border: 1px solid gray collapse; } TH { border: 1px solid gray; padding: 6px 4px; background-color: #eaeaea; } TD { border: 1px solid gray; padding: 4px; } </style> "@ Import-Module MsiClient Get-MsiClientPackage | where { $_.Publisher -contains 'Microsoft Corporation' } | sort-object -Property ProductName | ConvertTo-Html -Property ProductCode,PackageName,ProductName,VersionString,Language,Publisher -Head $Header | Out-File c:\temp\test.html
The above snippet produces a HTML based report, showing all Microsoft products available on the current system.
There are still lots of TODOs, which I am going to cover soon, for example:
- More methods supported (install, uninstall, repair etc.)
- Better exception handling
- Support for
-WhatIf
and-Confirm
switches
In any case, my design goal is to keep the syntax similar to functions available in the AppVClient
module, so that ideally for basic scenarios they have a 1-1 mapping in the MSI counterpart.
Link to my guthub (the project is licensed under MIT):
https://github.com/marcinotorowski/PowerShellMsiClient