{"id":166,"date":"2010-05-17T15:01:54","date_gmt":"2010-05-17T19:01:54","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=166"},"modified":"2013-04-06T11:57:53","modified_gmt":"2013-04-06T15:57:53","slug":"new-free-tool-pkgview-for-app-v","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=166","title":{"rendered":"New Free Tool: PkgView for App-V"},"content":{"rendered":"<p>Have you ever wanted to see what was captured in the App-V user or global\u00a0PKG file?\u00a0<\/p>\n<p style=\"text-align: justify; line-height: 14.25pt;\"><span style=\"font-family: &amp;amp;amp; font-size: 10pt;\">For the last 4 years, on and off, I have been trying to build a tool to do just that.\u00a0 And for just as long I have been really close to having such a tool, but not close enough to release one.\u00a0 I could list files and folders and expand the virtual registry, but I always either missed some things from the file or picked up extraneous garbage.\u00a0 Why?\u00a0 Because it is hands-down the worst file format ever devised.\u00a0 By comparison, the Sft format is a piece of cake.\u00a0 And it&#8217;s not just me, Kalle Saunam\u00e4ki (the creator of <a href=\"https:\/\/www.gridmetric.com\/products\/ave.html\"><span style=\"color: #0000ff;\">Application Virtualization Explorer <\/span><\/a>) worked on this long and hard without success for a long time too.\u00a0\u00a0This month Kalle released an update to the paid-for version of his tool with capabilities to read the pkg.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: &amp;amp;amp; font-size: 10pt;\">Meanwhile I had been working, with\u00a0some encouragement from Microsoft, to complete a workable\u00a0release. \u00a0Once I finished it last winter, I had to wait\u00a0Microsoft gave me permission to release (a bureaucratic thing that took way too long).\u00a0 Well, today I finally have that permission!\u00a0<\/span><\/p>\n<p><span style=\"line-height: 115%; font-family: &amp;amp;amp; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\">This tool is free.\u00a0 Consider it more of a debugging tool and Kalle&#8217;s a professional tool.\u00a0 With this tool you can view modified files and registry settings, and dump out files from the pkg in either text or hex format.<\/span><\/p>\n<h1 style=\"text-align: center;\"><a href=\"https:\/\/www.tmurgent.com\/download\/PkgView_1.5.0.zip\">Download PkgView 1.5 Zip (273kb)<\/a><\/h1>\n<p><span style=\"line-height: 115%; font-family: &amp;amp;amp; font-size: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;\">\u00a0<\/span><\/p>\n<h2>Why?<\/h2>\n<p style=\"text-align: justify;\">Why do we need such a tool?\u00a0 Because things don&#8217;t always work perfectly.\u00a0<\/p>\n<p style=\"text-align: justify;\">Sometimes files get marked as &#8220;application&#8221; when what we really need is for it to be marked &#8220;user&#8221;, so the changes made don&#8217;t roam with the user.\u00a0 Sure, if we know what file it is we can check the sft, but when the app just breaks, we don&#8217;t always know which file it is to modify the settings to.\u00a0<\/p>\n<p style=\"text-align: justify;\">And then there is all of the .net stuff.\u00a0 Side by side components sometimes cause issues in packages.\u00a0 Before having such a tool, we were forced to just reset the entire user pkg because we couldn&#8217;t tell what has changed.\u00a0 While you can&#8217;t edit the pkg with this tool, you can find what changed and use the &#8220;\/EXE %COMSPEC%&#8221; trick to get a cmd prompt inside the user pkg to\u00a0fix the issue.\u00a0<\/p>\n<p style=\"text-align: justify;\">And we need such a tool to figure out DSC issues, such as which package is getting the changes.<\/p>\n<h2>How does it work?<\/h2>\n<p>Install the\u00a0software and run PkgView.\ufffd<br \/>\n\u00a0\u00a0\u00a0<\/p>\n<p><img decoding=\"async\" src=\"\\TMBlog\\wp-content\\uploads\\2010\\03\\Information.png\" alt=\"\" \/><\/p>\n<p style=\"text-align: justify;\">You select the Pkg file you are interested in and click on the Analyze button.The display on the left shows an information tab with GUIDs and versions and dates and sizes of things.To this we add the counts of the number of file\/folder and registry changes contained in the pkg file.<\/p>\n<p style=\"text-align: justify;\">The preference is to supply both the Sft and Pkg file for viewing.\u00a0 When you provide both, the files and registry tabs provide an overlay view of the pkg contents on top of the sft.\u00a0 If you don&#8217;t also reference the Sft file, you will need to use the &#8220;PkgFiles&#8221;, &#8220;PkgFolders&#8221;, and &#8220;PkgDeletes&#8221; tabs to view the lists of files and folders that have changed.\u00a0 You will need to view the &#8220;Pkg Settings.cp&#8221; tab to view the registry changes.\u00a0 Without the Sft, the Pkg tends to have stub folder references that cannot be placed on any kind of tree structure, as the folder references a parent folder that is not in the Pkg.<\/p>\n<p>So I recommend that you also identify the Sft file associated with it.\u00a0 By indentigying the sft, the tool can display an overlay of the Pkg on-top of the Sft.<br \/>\n\u00a0<\/p>\n<p><img decoding=\"async\" src=\"\\TMBlog\\wp-content\\uploads\\2010\\03\\Files.png\" alt=\"\" \/><\/p>\n<p style=\"text-align: justify;\">This display shows how the changes are overlaid and integrated onto the sft.With both the Sft and Pkg provided, you can click on the Files tab to see what files have changed, been added, or been deleted in a full tree view.This is much easier to understand.<\/p>\n<p style=\"text-align: justify;\">The folders and files are color coded to indicate which have modifications in the Pkg.\u00a0 For example, modified folders are colored blue.\u00a0 Modified files are also bard blue.\u00a0 New files have an &#8220;asterisk&#8221; on them.<\/p>\n<p>There is a &#8220;Find Next Changed File&#8221; button to skip from one to the next.<\/p>\n<p style=\"text-align: justify;\">For files that are new or modified in the Pkg, you can obtain a dump-view of the file using the &#8220;Dump Changed File&#8221; button. Select the new or modified file on this screen and click on the\u00a0button. After clicking on that button a new tab will appear with the dump. If it is a text file, it will be displayed as text, otherwise it is shown using a hex-dump.<\/p>\n<p>You can also view an overlay of the Pkg Registry changes.<\/p>\n<p><img decoding=\"async\" src=\"\\TMBlog\\wp-content\\uploads\\2010\\03\\Registry.png\" alt=\"\" \/><\/p>\n<p style=\"text-align: justify;\">Clicking on the Registry tab (when both sft and pkg are provided), we see a tree like layout of the virtual registry.Again here, the items are coded with colored icons to aid in identification of changed items.\u00a0Values of virtual registry items are shown both as they are in the sft and in the pkg.<\/p>\n<h2>Things not in the tool<\/h2>\n<p>The tool covers the basics of what you need, but not everything that could be done.<\/p>\n<ul>\n<li>While the tool handles 64bit packages, you must run the tool on a 32-bit system right now due to an issue with a decompression library.<\/li>\n<li>The \u00a0tool silently ignores &#8220;links&#8221; in both Sft and Pkg.\u00a0<\/li>\n<li>It\u00a0does not display fonts captured in the Sft or Pkg.<\/li>\n<li>It does not display additional\u00a0file\/folder mappings recorded in the Sft or Pkg.\u00a0<\/li>\n<li>You also cannot &#8220;export&#8221; file contents, only view.\u00a0<\/li>\n<li>The tool might or might not work on a &#8220;corrupted&#8221; file.\u00a0<\/li>\n<li>It ignores any security descriptors.\u00a0<\/li>\n<li>As it doesn&#8217;t work with OSDs, it knows nothing about DSC.<\/li>\n<li>And finally, it\u00a0displays contents of files only up to 4MB in size.\u00a0\u00a0<\/li>\n<\/ul>\n<p>\u00a0These are all things that might get improved in the future.\u00a0 Who knows?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever wanted to see what was captured in the App-V user or global\u00a0PKG file?\u00a0 For the last 4 years, on and off, I have been trying to build a tool to do just that.\u00a0 And for just as long I have been really close to having such a tool, but not close enough&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=166\">Continue reading <span class=\"screen-reader-text\">New Free Tool: PkgView for App-V<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[36,35,50],"tags":[4,7],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-all","category-appv4","category-tools","tag-app-v","tag-tools","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=166"}],"version-history":[{"count":52,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":198,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/166\/revisions\/198"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}