IT Management Suite

 View Only
  • 1.  Tutorial for applying App-V 5.x packages with ITMS

    Posted May 24, 2017 10:22 AM

    We are currently migrating around 13000 clients from Windows 7 x64 to Windows 10 x64 CB for Business using ITMS. On Windows 7 we have deployed around 400 virtual packages made with Symantec Workspace Virtualization, some are deployed with Symantec Streaming.

    But since SEV is EOL we are going to repackage everything we can in APP-V 5.x format.

    Since I could not find any information on others doing the same stuff I had some questions.

    I did not get any response on my original post, so I have shared my findings as new post under the original post:

    • W̶̶̶h̶̶̶a̶̶̶t̶̶̶ ̶̶̶i̶̶̶s̶̶̶ ̶̶̶t̶̶̶h̶̶̶e̶̶̶ ̶̶̶b̶̶̶e̶̶̶s̶̶̶t̶̶̶ ̶̶̶m̶̶̶e̶̶̶t̶̶̶h̶̶̶o̶̶̶d̶̶̶ ̶̶̶f̶̶̶o̶̶̶r̶̶̶ ̶̶̶d̶̶̶e̶̶̶t̶̶̶e̶̶̶c̶̶̶t̶̶̶i̶̶̶o̶̶̶n̶̶̶r̶u̶l̶e̶ ̶̶̶f̶o̶r̶ ̶̶̶a̶̶̶p̶̶̶p̶̶̶-̶̶̶v̶̶̶ ̶p̶̶̶a̶̶̶c̶̶̶k̶̶̶a̶̶̶g̶̶̶e̶̶̶s̶̶̶ ̶̶̶o̶̶̶n̶̶̶ ̶̶̶a̶̶̶ ̶̶̶c̶̶̶l̶̶̶i̶̶̶e̶̶̶n̶̶̶t̶̶̶s̶̶̶ ̶̶̶u̶̶̶s̶̶̶i̶̶̶n̶̶̶g̶̶̶ ̶̶̶I̶̶̶T̶̶̶M̶̶̶S̶̶̶?̶̶̶ ̶̶̶ ̶

    I̶n̶ ̶o̶u̶r̶ ̶P̶O̶C̶,̶ ̶w̶e̶ ̶h̶a̶v̶e̶ ̶j̶u̶s̶t̶ ̶b̶e̶e̶n̶ ̶u̶s̶i̶n̶g̶ ̶t̶h̶e̶ ̶C̶:̶\̶P̶r̶o̶g̶r̶a̶m̶D̶a̶t̶a̶\̶A̶p̶p̶-̶V̶\̶p̶a̶c̶k̶a̶g̶e̶G̶U̶I̶D̶\̶v̶e̶r̶s̶i̶o̶n̶G̶U̶I̶D̶,̶ ̶b̶u̶t̶ ̶t̶h̶a̶t̶ ̶o̶n̶l̶y̶ ̶s̶e̶e̶s̶ ̶i̶f̶ ̶a̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶i̶s̶ ̶n̶o̶t̶ ̶p̶r̶e̶s̶e̶n̶t̶,̶ ̶s̶o̶ ̶j̶u̶s̶t̶ ̶b̶y̶ ̶a̶d̶d̶i̶n̶g̶ ̶i̶t̶ ̶t̶o̶ ̶t̶h̶e̶ ̶s̶y̶s̶t̶e̶m̶ ̶w̶e̶ ̶d̶e̶t̶e̶c̶t̶ ̶t̶h̶a̶t̶ ̶t̶h̶e̶ ̶r̶e̶l̶e̶v̶a̶n̶t̶ ̶G̶U̶I̶D̶S̶ ̶f̶o̶l̶d̶e̶r̶s̶ ̶d̶o̶e̶s̶ ̶n̶o̶t̶ ̶e̶x̶i̶s̶t̶ ̶a̶n̶d̶ ̶i̶t̶ ̶w̶i̶l̶l̶ ̶b̶e̶ ̶d̶e̶p̶l̶o̶y̶e̶d̶.̶ ̶B̶u̶t̶ ̶i̶t̶ ̶w̶o̶n̶’̶t̶ ̶s̶e̶e̶ ̶i̶f̶ ̶i̶t̶'̶s̶ ̶a̶c̶t̶u̶a̶l̶l̶y̶ ̶a̶c̶t̶i̶v̶a̶t̶e̶d̶ ̶(̶p̶u̶b̶l̶i̶s̶h̶e̶d̶)̶ ̶w̶i̶t̶h̶o̶u̶t̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶a̶p̶p̶-̶v̶ ̶P̶o̶w̶e̶r̶S̶h̶e̶l̶l̶ ̶c̶o̶m̶m̶a̶n̶d̶s̶ ̶a̶n̶d̶ ̶r̶e̶a̶d̶i̶n̶g̶ ̶t̶h̶e̶ ̶r̶e̶s̶u̶l̶t̶i̶n̶g̶ ̶s̶t̶a̶t̶u̶s̶.̶ ̶W̶e̶ ̶k̶n̶o̶w̶ ̶h̶o̶w̶ ̶t̶o̶ ̶d̶o̶ ̶i̶t̶,̶ ̶b̶u̶t̶ ̶i̶t̶ ̶w̶i̶l̶l̶ ̶r̶e̶q̶u̶i̶r̶e̶ ̶e̶v̶e̶n̶ ̶m̶o̶r̶e̶ ̶s̶c̶r̶i̶p̶t̶i̶n̶g̶.̶

    • H̶o̶w̶ ̶a̶r̶e̶ ̶y̶o̶u̶ ̶g̶u̶y̶s̶ ̶d̶o̶i̶n̶g̶ ̶i̶t̶?̶ ̶A̶r̶e̶ ̶y̶o̶u̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶e̶v̶e̶n̶t̶ ̶s̶c̶r̶i̶p̶t̶s̶ ̶o̶n̶ ̶a̶d̶d̶/̶r̶e̶m̶o̶v̶e̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶s̶t̶a̶t̶e̶ ̶a̶n̶d̶ ̶u̶n̶/̶p̶u̶b̶l̶i̶s̶h̶i̶n̶g̶ ̶s̶t̶a̶t̶e̶ ̶t̶h̶a̶t̶’̶s̶ ̶a̶d̶d̶i̶n̶g̶ ̶a̶n̶d̶ ̶r̶e̶m̶o̶v̶i̶n̶g̶ ̶r̶e̶g̶ ̶v̶a̶l̶u̶e̶s̶ ̶f̶o̶r̶ ̶d̶e̶t̶e̶c̶t̶i̶o̶n̶ ̶r̶u̶l̶e̶s̶,̶ ̶o̶r̶ ̶a̶r̶e̶ ̶y̶o̶u̶ ̶d̶o̶i̶n̶g̶ ̶s̶o̶m̶e̶t̶h̶i̶n̶g̶ ̶e̶l̶s̶e̶?̶
    • •̶ ̶H̶o̶w̶ ̶a̶r̶e̶ ̶y̶o̶u̶ ̶m̶a̶k̶i̶n̶g̶ ̶a̶n̶d̶ ̶d̶e̶p̶l̶o̶y̶i̶n̶g̶ ̶C̶o̶n̶n̶e̶c̶t̶i̶o̶n̶ ̶G̶r̶o̶u̶p̶s̶ ̶(̶C̶G̶)̶?̶ ̶A̶r̶e̶ ̶y̶o̶u̶ ̶g̶u̶y̶s̶ ̶s̶c̶r̶i̶p̶t̶i̶n̶g̶ ̶i̶t̶ ̶o̶n̶ ̶e̶v̶e̶r̶y̶ ̶c̶l̶i̶e̶n̶t̶ ̶f̶r̶o̶m̶ ̶s̶o̶m̶e̶ ̶k̶i̶n̶d̶ ̶o̶f̶ ̶r̶u̶l̶e̶/̶l̶o̶g̶i̶c̶,̶ ̶o̶r̶ ̶a̶r̶e̶ ̶y̶o̶u̶ ̶m̶a̶k̶i̶n̶g̶ ̶t̶h̶e̶ ̶C̶G̶ ̶o̶n̶ ̶a̶n̶o̶t̶h̶e̶r̶ ̶c̶o̶m̶p̶u̶t̶e̶r̶ ̶w̶i̶t̶h̶ ̶t̶h̶e̶ ̶r̶e̶l̶e̶v̶a̶n̶t̶ ̶p̶a̶c̶k̶a̶g̶e̶s̶ ̶o̶n̶ ̶a̶n̶d̶ ̶s̶e̶n̶d̶i̶n̶g̶ ̶i̶t̶ ̶o̶u̶t̶ ̶a̶s̶ ̶a̶n̶ ̶x̶m̶l̶ ̶f̶i̶l̶e̶ ̶“̶p̶a̶c̶k̶a̶g̶e̶”̶ ̶a̶c̶t̶i̶v̶a̶t̶i̶n̶g̶ ̶i̶t̶ ̶o̶n̶ ̶e̶v̶e̶r̶y̶ ̶c̶l̶i̶e̶n̶t̶ ̶n̶e̶e̶d̶i̶n̶g̶ ̶i̶t̶.̶ ̶I̶t̶ ̶s̶e̶e̶m̶s̶ ̶l̶i̶k̶e̶ ̶O̶f̶f̶i̶c̶e̶ ̶p̶l̶u̶g̶i̶n̶s̶ ̶a̶n̶d̶ ̶I̶E̶ ̶p̶l̶u̶g̶i̶n̶ ̶C̶G̶ ̶a̶r̶e̶ ̶n̶e̶e̶d̶e̶d̶ ̶o̶n̶ ̶m̶o̶s̶t̶/̶a̶l̶l̶ ̶o̶f̶ ̶o̶u̶r̶ ̶c̶o̶m̶p̶u̶t̶e̶r̶s̶.̶ ̶•̶ ̶W̶e̶ ̶a̶r̶e̶ ̶t̶h̶i̶n̶k̶i̶n̶g̶ ̶a̶b̶o̶u̶t̶ ̶a̶d̶d̶i̶n̶g̶ ̶t̶h̶e̶ ̶“̶A̶n̶y̶ ̶v̶e̶r̶s̶i̶o̶n̶”̶ ̶f̶l̶a̶g̶ ̶a̶n̶d̶ ̶t̶h̶e̶ ̶“̶O̶p̶t̶i̶o̶n̶a̶l̶”̶ ̶f̶l̶a̶g̶ ̶o̶n̶ ̶a̶l̶l̶ ̶p̶a̶c̶k̶a̶g̶e̶s̶ ̶i̶n̶ ̶a̶ ̶C̶G̶ ̶e̶x̶c̶e̶p̶t̶ ̶t̶h̶e̶ ̶M̶a̶i̶n̶ ̶p̶a̶c̶k̶a̶g̶e̶(̶m̶a̶y̶b̶e̶ ̶a̶ ̶d̶u̶m̶m̶y̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶i̶s̶ ̶b̶e̶s̶t̶?̶)̶.̶ ̶I̶n̶ ̶m̶y̶ ̶h̶e̶a̶d̶ ̶i̶t̶ ̶s̶e̶e̶m̶ ̶t̶o̶ ̶b̶e̶ ̶m̶o̶r̶e̶ ̶f̶l̶e̶x̶i̶b̶l̶e̶,̶ ̶a̶n̶y̶ ̶p̶r̶o̶/̶c̶o̶n̶s̶ ̶o̶n̶ ̶t̶h̶i̶s̶ ̶a̶p̶p̶r̶o̶a̶c̶h̶?̶
    • I have found out that the reason for the default total isolation state of App-V 5.x packages is to ensure that you never ever have any compability issues, like the well known DLL hell. Today this not an issue for most computers. Except maybe for terminal servers with multiple applications and user sessions on the same server at the same time. Based on my own SWV expericence we just had to use it for some few packages mostly under migration phase from Xp to Windows 7.x64. One example was running virtual IE6 and old java stuff in an isolated layer, and a couple of other old systems we were phasing out running side by side with the new application. So my experience today working with more thant 400 virtual applications dictates that all applications should in theory behave as much as a normal “msi” installed application, and the few that won’t should be isolated.
    • W̶h̶a̶t̶ ̶i̶s̶ ̶t̶h̶e̶ ̶i̶s̶s̶u̶e̶s̶ ̶r̶u̶n̶n̶i̶n̶g̶ ̶o̶n̶e̶ ̶b̶i̶g̶ ̶C̶G̶ ̶w̶i̶t̶h̶ ̶a̶l̶l̶ ̶p̶a̶c̶k̶a̶g̶e̶s̶ ̶i̶n̶s̶i̶d̶e̶ ̶e̶x̶c̶e̶p̶t̶ ̶f̶o̶r̶ ̶t̶h̶o̶s̶e̶ ̶f̶e̶w̶ ̶n̶e̶e̶d̶i̶n̶g̶ ̶i̶s̶o̶l̶a̶t̶i̶o̶n̶,̶ ̶s̶e̶e̶m̶s̶ ̶l̶i̶k̶e̶ ̶t̶h̶e̶ ̶e̶a̶s̶i̶e̶s̶t̶ ̶c̶h̶o̶i̶c̶e̶.̶ ̶ ̶̶̶l̶̶̶s̶ ̶i̶t̶ ̶a̶̶̶ ̶̶̶b̶̶̶a̶̶̶d̶̶̶ ̶̶̶c̶̶̶h̶̶̶o̶̶̶i̶̶̶c̶̶̶e̶̶̶,̶ ̶a̶n̶̶̶y̶̶̶ ̶̶̶p̶̶̶r̶̶̶o̶̶̶/̶̶̶c̶̶̶o̶̶̶n̶̶̶s̶̶̶?̶̶̶ ̶  Performance will take a hit if you try this approach, also publishing and upgrade of connectiongroups and applications will be more difficult, and if you are going with Office 2013 as App-V you have to turn on the same COM isolation settings for all the other packages in that CG, or else it will fail. 
    • R̶u̶n̶v̶i̶r̶t̶u̶a̶l̶.̶ ̶P̶r̶o̶/̶c̶o̶n̶s̶ ̶f̶o̶r̶ ̶t̶h̶a̶t̶ ̶m̶e̶t̶h̶o̶d̶.̶ ̶I̶ ̶h̶a̶v̶e̶ ̶f̶o̶u̶n̶d̶ ̶o̶u̶t̶ ̶y̶o̶u̶ ̶c̶a̶n̶ ̶g̶e̶t̶ ̶a̶l̶l̶ ̶p̶r̶o̶c̶e̶s̶s̶e̶s̶ ̶f̶r̶o̶m̶ ̶b̶a̶s̶e̶ ̶l̶a̶y̶e̶r̶ ̶i̶n̶t̶o̶ ̶t̶h̶e̶ ̶v̶i̶r̶t̶u̶a̶l̶ ̶b̶u̶b̶b̶l̶e̶ ̶t̶h̶a̶t̶ ̶w̶a̶y̶.̶ ̶A̶n̶d̶ ̶b̶y̶ ̶m̶a̶k̶i̶n̶g̶ ̶o̶n̶e̶ ̶d̶u̶m̶m̶y̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶a̶n̶d̶ ̶u̶s̶i̶n̶g̶ ̶t̶h̶a̶t̶ ̶s̶a̶m̶e̶ ̶g̶u̶i̶d̶ ̶f̶o̶r̶ ̶e̶v̶e̶r̶y̶ ̶e̶x̶e̶ ̶f̶i̶l̶e̶ ̶i̶t̶’̶s̶ ̶m̶u̶c̶h̶ ̶e̶a̶s̶i̶e̶r̶ ̶t̶o̶ ̶m̶a̶i̶n̶t̶a̶i̶n̶ ̶t̶h̶e̶m̶ ̶w̶i̶t̶h̶o̶u̶t̶ ̶h̶a̶v̶i̶n̶g̶ ̶t̶o̶ ̶e̶d̶i̶t̶ ̶t̶h̶e̶ ̶r̶u̶n̶ ̶v̶i̶r̶t̶u̶a̶l̶ ̶k̶e̶y̶s̶ ̶e̶v̶e̶r̶y̶ ̶t̶i̶m̶e̶ ̶a̶ ̶n̶e̶w̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶g̶e̶t̶s̶ ̶a̶ ̶n̶e̶w̶ ̶g̶u̶i̶d̶.̶ ̶F̶o̶r̶ ̶a̶s̶ ̶l̶o̶n̶g̶ ̶a̶s̶ ̶t̶h̶e̶ ̶r̶u̶n̶v̶i̶r̶t̶u̶a̶l̶ ̶k̶e̶y̶ ̶e̶x̶i̶s̶t̶ ̶o̶n̶ ̶t̶h̶e̶ ̶s̶y̶s̶t̶e̶m̶ ̶a̶n̶d̶ ̶t̶h̶e̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶g̶u̶i̶d̶ ̶i̶s̶ ̶t̶h̶e̶ ̶s̶a̶m̶e̶ ̶i̶t̶ ̶w̶i̶l̶l̶ ̶a̶l̶w̶a̶y̶s̶ ̶w̶o̶r̶k̶ ̶w̶h̶e̶n̶ ̶t̶h̶e̶ ̶d̶u̶m̶m̶y̶ ̶p̶a̶c̶k̶a̶g̶e̶ ̶i̶s̶ ̶i̶n̶ ̶t̶h̶e̶ ̶r̶i̶g̶h̶t̶ ̶C̶G̶.̶


  • 2.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Jul 11, 2017 09:38 AM

    Found out how to make detectionrules:

    Using the free application tweakappv from Advanced installer we have finally found a working api for modifying files inside our created app-v packages without using manual editing in the annoying Sequencer.

    This way we have automated creation of detection rules into App-V packages.

    Short story:

    Get the manifest.xml out of the app-v package (treat reading from appv file like a zip file).

    When you have the manifestfile make a script/program that read from the xml file.

    Find "Identity Name",'Version="', 'appv:PackageId="' and 'appv:VersionId="'.

    Using stringsplit get the values and store as variables.

    Then write four cmd files and insert detectionrules like: 'reg add "hklm\software\wow6432node\companyname\Appv\' & $PackageName & '" /v AddPackage /t reg_sz /d ' & $Version & "/" & $PackageID & "/" & $VersionID & " /f") into our cmd files.

    We just call them AddPackage.cmd, PublishPackage.cmd, UnpublishPackage.cmd and RemovePackage.cmd.

    Settings is like this:

    Package Scripts:

     On adding package:

     In machine context: YES

     - Script:%windir%\system32\cmd.exe

     - Parameters: /c AddPackage.cmd

     - Wait for App-V Client to Complete: YES

     - Do not use encoded executable paths: YES

     - Script timeout: 999 secounds

     

     On package publish:

     In machine context: YES

     - Script:%windir%\system32\cmd.exe

     - Parameters: /c PublishPackage.cmd

     - Wait for App-V Client to Complete: YES

     - Do not use encoded executable paths: YES

     - Script timeout: 999 secounds

     

     On Package unpublish:

     In machine context: YES

     - Script:%windir%\system32\cmd.exe

     - Parameters: /c UnpublishPackage.cmd

     - Wait for App-V Client to Complete: YES

     - Do not use encoded executable paths: YES

     - Script timeout: 999 secounds

     

     On removing package:

     In machine context: YES

     - Script:%windir%\system32\cmd.exe

     - Parameters: /c RemovePackage.cmd

     - Wait for App-V Client to Complete: YES

     - Do not use encoded executable paths: YES

     - Script timeout: 999 secounds

    And woila.

    Your “new” version of the package will have the needed detection rules. The rest of the code needed is not available for sharing atm., but it should be easy enough if you can script/program.

     

     



  • 3.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Jul 18, 2017 09:03 AM

    Getting the correct detectionrules for Office 2013/2016 app-v packages was not as easy as the above solution.

    Even if the tweakappv.exe did get our scriptfiles inside the package created by the Appv Office tool, i could not update the internal scripts without problems. And the internal machinescripts part is used to install the licensemodule via the integrator.exe.

    I had to resort to a deploymentconfig file "ProPlusVolume_nb-no_x86_DeploymentConfig.xml"

    I could only get the addpackage to work when trying to run each script, was always failing on the publish part.

     

    But i finaly got it working using the mstool scriptrunner.exe that is a part of App-V.

    Syntax is as following:

    <MachineScripts>
          <PublishPackage>
            <Path>Scriptrunner.exe</Path>
            <Arguments>
    -appvscript cmd.exe /c "[{AppVPackageRoot}]\..\Scripts\PublishPackage.cmd –appvscriptrunnerparameters –wait –timeout=99 – rollbackonerror
    </Arguments>        
          </PublishPackage>
          <UnpublishPackage>
            <Path>Scriptrunner.exe</Path>
            <Arguments>
    -appvscript cmd.exe /c "[{AppVPackageRoot}]\..\Scripts\UnpublishPackage.cmd –appvscriptrunnerparameters –wait –timeout=99 – rollbackonerror
    </Arguments>        
          </UnpublishPackage>      
          <AddPackage>
            <Path>Scriptrunner.exe</Path>
            <Arguments>
    -appvscript cmd.exe /c "[{AppVPackageRoot}]\..\Scripts\AddPackage.cmd –appvscriptrunnerparameters –wait –timeout=99 – rollbackonerror
    </Arguments>       
          </AddPackage>
          <RemovePackage>
            <Path>Scriptrunner.exe</Path>
            <Arguments>
    -appvscript cmd.exe /c "[{AppVPackageRoot}]\..\Scripts\RemovePackage.cmd –appvscriptrunnerparameters –wait –timeout=99 – rollbackonerror
    </Arguments>        
          </RemovePackage>
        </MachineScripts>

     

     
    Hope this helps somebody else :)


  • 4.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Trusted Advisor
    Posted Dec 13, 2017 07:20 AM

    Hi AJ,

    There is a lot of incredibly useful information in this post, have you thought about creating this as a series of articles? 

    It would give this better visibility and you'd get points in return? 

    Again, thanks for the info. I'm sure a lot of people moving from SWV to App-V are going to find this really useful. 

    Thanks



  • 5.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 13, 2017 02:44 PM

    Runvirtual:

    Will share more advanced details of our method later when we are finished documenting and perfecting it.

    It's based on ideas from: http://virtualvibes.co.uk/using-powershell-to-self-deliver-runvirtual/

    But instead of just delivering runvirtual files with scripts in the package, our method involved a powershellscript running on the client and managed from Altiris or other cms system.

    This script reads from an ini file.

    1. Will put down the detection rule in registry the first time script runs.
      1.  
        Altiris:
        ----------------------------------------------------------------------
        Install
        powershell.exe -executionPolicy bypass -file .\RunVirtual_MK.ps1 -Inifile RunVirtual_MK.ini
         
        Altiris detection rule:
        HKEY_LOCAL_MACHINE\Software\Company\RunVirtual_MK"
        Versjon=29.11.2017-01
    2. The next thing it does is checking ini version. Is there a newer version of the ini file it will be used.
    3. The [Forbidden] files will be added as an variable so it will remove thoose entrys from the runvirtual keys. If the same exe file exist it for some reason in the ini file it will also be removed. 
    4. Read the runvirtual keys from  and add thoose keys to run virtual in registry

    Example of our ini file:

    [ini]
    iniVersion=29.11.2017-01
    
    
    [Forbidden]
    001=C:\Program Files (x86)\test\test1.exe
    
    [Rv_oracle]
    001=C:\Program Files (x86)\test\test.exe
    

    Next version will be perfected running as a task schedule, a schedule can run as a normal AD user, making it possible to copy our ini file from a dfs share. If the dfs is not available it will use the local copy.

    Powershell ini reading is based on this code:

    Function Get-IniContent {  
        <#  
        .Synopsis  
            Gets the content of an INI file  
              
        .Description  
            Gets the content of an INI file and returns it as a hashtable  
              
        .Notes  
            Author        : Oliver Lipkau <oliver@lipkau.net>  
            Blog        : http://oliver.lipkau.net/blog/  
            Source        : https://github.com/lipkau/PsIni 
                          http://gallery.technet.microsoft.com/scriptcenter/ea40c1ef-c856-434b-b8fb-ebd7a76e8d91 
            Version        : 1.0 - 2010/03/12 - Initial release  
                          1.1 - 2014/12/11 - Typo (Thx SLDR) 
                                             Typo (Thx Dave Stiff) 
              
            #Requires -Version 2.0  
              
        .Inputs  
            System.String  
              
        .Outputs  
            System.Collections.Hashtable  
              
        .Parameter FilePath  
            Specifies the path to the input file.  
              
        .Example  
            $FileContent = Get-IniContent "C:\myinifile.ini"  
            -----------  
            Description  
            Saves the content of the c:\myinifile.ini in a hashtable called $FileContent  
          
        .Example  
            $inifilepath | $FileContent = Get-IniContent  
            -----------  
            Description  
            Gets the content of the ini file passed through the pipe into a hashtable called $FileContent  
          
        .Example  
            C:\PS>$FileContent = Get-IniContent "c:\settings.ini"  
            C:\PS>$FileContent["Section"]["Key"]  
            -----------  
            Description  
            Returns the key "Key" of the section "Section" from the C:\settings.ini file  
              
        .Link  
            Out-IniFile 

    Hope this help:



  • 6.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 15, 2017 08:25 AM

    Connection Groups (CG):

    CG is basically an xml file. 

    Use the free sw AppV_DefConGroups from tmurgent to create CG files.

    Make one dummy Appv package with nothing else but a detection rule and call it CG_name_Master.

    This package can't be optional since it's basically a primary key for the CG, and we have to enable the this package first or the CG won't work .

    This dummy package has the any version flag checked, so it can be upgraded if needed without making the CG all over again.

    Then we just put all the packages we want to load into the CG in the same directory structure and we just add them in the program, set any version and optional flags on so we can remove and add newer versions when we want and the loading sequence with the move up and down buttons.

    Then remember to save the CG with an unique Priority.

    I recommend using at least 10 numbers bigger priority in case there needs to be safe that no other CG won't interfere with it later.

    The reason we need to use unique numbers is because if a package is loaded into two connection groups, the Appv client needs to know witch VE(virtual environment) to load first, or else it will fail catastrophic. See this blog post about it: http://virtualvibes.co.uk/connection-group-conflicts-in-app-v-5-0/

    The next thing we need now is a detection rule in Altiris.

    Found out the easiest way is to check for files.

    The default location of a loaded CG is under:

    C:\ProgramData\Microsoft\AppV\Client\Catalog\PackageGroups\{GroupId}\{VersionId}\

    When you load a CG it will make two files called:

    • PackageGroupDescriptor.xml
    • PackageGroupDescriptorTemplate.xml

    When you enable the CG it will make the file:

    UserPackageGroupDescriptor.xml

    So this makes it possible to see if it is imported and not enabled, or removed completely if no files exist here.

    There is no way around using CG if you need two Appv packages to work together dynamically.

    You can of course repackage them all together in the same big package.

    But the drawbacks are: Package will be much bigger in size, will affect load speed, deployment speed and maybe performance during working with programs inside. And if you want to just upgrade one program the complete package has to be upgraded.

    Hope this helps.

     

     

     

     



  • 7.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 18, 2017 04:23 AM

    Thanks, if I got the time before Christmas i can begin to make some articles/blogs here.

    I was thinking there must be other people than us having to struggle going from swv to appv so I hope this will shed some light on some of the main challenges we had.

    The Appv technology is not as flexable as swv, but it does the job most of the time as long as you think about everything like if it needs to work with other applications in other packages or localy installed apps.

    And remember to test ALL your applications on every new Windows 10 build before migration the os, the 1703  build of window 10's 5.2* Appv version update broke a lot of earlier sequenced applications due to some big changes in the registry: http://www.tmurgent.com/TmBlog/?p=2692 so i recommend sequencing on 1703 if you can.

    UPDATE: Workaround for the 1703 App-V bug is described here by Rob Essers (thanks :) : 

    MS is planning a hotfix for feb2018, which should solve the issues we're facing with the containerized registry implementation they introduced with 1703. As long as this hotfix is not available, you can create and set the following regkey to disable CReg:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Compatibility]
    "RegistryCompatibilityMode"=dword:00000001

    Reboot your machine (or restart the app-v service), and the issue should be resolved. I had 3 separate issues, all related to the creg change, which were resolved this way. The upcoming hotfix will make the above regkey obsolete.

      



  • 8.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 28, 2017 03:57 AM

    TIP:

    Other software you should use for editing and working with App-V:

    If you need to have several scripts pr event then you should have a look at scriptlauncer or scriptrunner (free with App-V) Or you could make your own script parser like us, but that will require a lot of error handling.

    A VERY usefull full editor is AVE. It will cost you som cash, but it's one of the best App-V editors out there capable of editing all versions of App-V.

    This is allmost essential when you want to only change a file or two or do som easy changes without reverting a virtual machine with a sequencer, it can also display a grafical overview of the numbers of shortcuts, com objects, active x plugins and all other kind of files in the package.

    Another editor capable of editing and build App-V packages is Advanced installer, the same company who makes the free command line tool we use for detection rules.



  • 9.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 28, 2017 05:06 AM

    Syntax for sending in detectionrules scripts with  Tweakappv: 

     

    The Symantec webeditor will trow me an access denided error if i paste the code in that editor so i made a pastebin for you.

    https://pastebin.com/n34Q2qaY



  • 10.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Posted Dec 29, 2017 02:14 PM

    https://www.symantec.com/connect/articles/tutorial-applying-app-v-5x-packages-itms Article out



  • 11.  RE: Tutorial for applying App-V 5.x packages with ITMS

    Trusted Advisor
    Posted Jan 24, 2018 03:25 AM

    Hi AJ,

    Looks good, glad you had the time to create the article.

    Cheers!