{"id":1563,"date":"2007-04-10T10:53:40","date_gmt":"2007-04-10T10:53:40","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/heaths\/2007\/04\/10\/windows-installer-powershell-extensions-1-0-beta-released\/"},"modified":"2019-02-17T15:30:19","modified_gmt":"2019-02-17T22:30:19","slug":"windows-installer-powershell-extensions-1-0-beta-released","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/setup\/windows-installer-powershell-extensions-1-0-beta-released\/","title":{"rendered":"Windows Installer PowerShell Extensions 1.0 Beta Released"},"content":{"rendered":"<p>I have released <a href=\"http:\/\/www.codeplex.com\/psmsi\/Release\/ProjectReleases.aspx?ReleaseId=2274\">Windows Installer PowerShell Extensions 1.0 beta<\/a>, complete with an installer package. I have also added a couple of cmdlets, and format and type configurations for a good out-of-the-box experience when using the cmdlets <strong>Get-MSIProductInfo<\/strong>, <strong>Get-MSIPatchInfo<\/strong>, and <strong>Get-MSIRelatedProductInfo<\/strong>.<\/p>\n<p>When I <a href=\"http:\/\/blogs.msdn.com\/heaths\/archive\/2007\/03\/14\/introducing-windows-installer-powershell-extensions.aspx\">introduced<\/a> PSMSI, you had to manually register the snapin and this was seemingly an adoption blocker. I&#8217;ve been looking into adding a <a href=\"http:\/\/wix.sourceforge.net\/\">WiX<\/a> extension to more easily dealing with this without having to load the CLR as is typically done today through <em>InstallUtilLib.dll<\/em> or <em>InstallUtil.exe<\/em>. Binder support is needed earlier and we&#8217;re looking into that feature to support this type of extension where assembly information is needed at compile time.\n<\/p>\n<p>I encourage you to download this release. The goal is to effectively replace the Windows Installer scripts in the Windows Installer SDK as well as <em>msiinv.exe<\/em> though that&#8217;s still a ways off. The most compelling difference is what you can do with that data, since PowerShell is based on an object pipeline and not simply a text pipeline like <em>cmd.exe<\/em> and other command shells. Too see how you can chain these and built-in cmdlets to find the information you need, see the <a href=\"http:\/\/www.codeplex.com\/psmsi\/Wiki\/View.aspx?title=Examples\">examples<\/a> page. For example, to find out how much space all registered patches are consuming, you could type the following:\n<\/p>\n<p><span style=\"font-family:Consolas\">get-msipatchinfo &ndash;filter all | get-itemproperty | format-table fullname, lastwritetime, length -autosize<\/span><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have released Windows Installer PowerShell Extensions 1.0 beta, complete with an installer package. I have also added a couple of cmdlets, and format and type configurations for a good out-of-the-box experience when using the cmdlets Get-MSIProductInfo, Get-MSIPatchInfo, and Get-MSIRelatedProductInfo. When I introduced PSMSI, you had to manually register the snapin and this was seemingly [&hellip;]<\/p>\n","protected":false},"author":389,"featured_media":3843,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[20,27,30],"class_list":["post-1563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-installation","tag-news","tag-powershell"],"acf":[],"blog_post_summary":"<p>I have released Windows Installer PowerShell Extensions 1.0 beta, complete with an installer package. I have also added a couple of cmdlets, and format and type configurations for a good out-of-the-box experience when using the cmdlets Get-MSIProductInfo, Get-MSIPatchInfo, and Get-MSIRelatedProductInfo. When I introduced PSMSI, you had to manually register the snapin and this was seemingly [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/1563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/users\/389"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/comments?post=1563"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/posts\/1563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media\/3843"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/media?parent=1563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/categories?post=1563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/setup\/wp-json\/wp\/v2\/tags?post=1563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}