none
an error from post install APP RRS feed

  • Question

  • I added an app (Junos Pulse) to the application for post install. It fails.

    Deployment summury :

    Détails: Application Juniper Junos Pulse returned an unexpected return code 193

    APPs Properties

    Standard Application

    Quiet install command: JunosPulse-x64.msi      (I tried with no switches and with /quiet /passive

    Working directory: .\Applications\Juniper Junos Pulse

    In my CS.ini I have a commands for redirecting logs to the server. For some reason this machine deployment folder is not listed. Don`t know why... So cannot look into the log.

    Any idea how to fix?

    HERE is msi HELP. May be I need to add some other switches?

    Windows ® Installer. V 5.0.9600.17415

    msiexec /Option <Required Parameter> [Optional Parameter]

    Install Options
     </package | /i> <Product.msi>
      Installs or configures a product
     /a <Product.msi>
      Administrative install - Installs a product on the network
     /j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
      Advertises a product - m to all users, u to current user
     </uninstall | /x> <Product.msi | ProductCode>
      Uninstalls the product
    Display Options
     /quiet
      Quiet mode, no user interaction
     /passive
      Unattended mode - progress bar only
     /q[n|b|r|f]
      Sets user interface level
      n - No UI
      b - Basic UI
      r - Reduced UI
      f - Full UI (default)
     /help
      Help information
    Restart Options
     /norestart
      Do not restart after the installation is complete
     /promptrestart
      Prompts the user for restart if necessary
     /forcerestart
      Always restart the computer after installation
    Logging Options
     /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
      i - Status messages
      w - Nonfatal warnings
      e - All error messages
      a - Start up of actions
      r - Action-specific records
      u - User requests
      c - Initial UI parameters
      m - Out-of-memory or fatal exit information
      o - Out-of-disk-space messages
      p - Terminal properties
      v - Verbose output
      x - Extra debugging information
      + - Append to existing log file
      ! - Flush each line to the log
      * - Log all information, except for v and x options
     /log <LogFile>
      Equivalent of /l* <LogFile>
    Update Options
     /update <Update1.msp>[;Update2.msp]
      Applies update(s)
     /uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
      Remove update(s) for a product
    Repair Options
     /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
      Repairs a product
      p - only if file is missing
      o - if file is missing or an older version is installed (default)
      e - if file is missing or an equal or older version is installed
      d - if file is missing or a different version is installed
      c - if file is missing or checksum does not match the calculated value
      a - forces all files to be reinstalled
      u - all required user-specific registry entries (default)
      m - all required computer-specific registry entries (default)
      s - all existing shortcuts (default)
      v - runs from source and recaches local package
    Setting Public Properties
     [PROPERTY=PropertyValue]

    Consult the Windows ® Installer SDK for additional documentation on the
    command line syntax.

    Copyright © Microsoft Corporation. All rights reserved.
    Portions of this software are based in part on the work of the Independent JPEG Group.


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Tuesday, June 9, 2015 3:59 PM

Answers

  • I don't know what error that is and you can find a long list of error codes from Microsoft here - https://msdn.microsoft.com/en-us/library/aa372835(v=vs.85).aspx

    I like to install applications using a VB wrapper so I can get error logging. Similar to what Ty suggested, but this will make use of MDT variables. Not only will it be logged in BDD.log but it will create it's own log file as well. Just replace "APPLICATION.MSI" with the name of the msi you're trying to install.

    <job id="Install-APPLICATION">
    <script language="VBScript" src="..\..\scripts\ZTIUtility.vbs"/>
    <script language="VBScript">
     
    ' //***************************************************************************
    ' // Purpose: Template with error logging
    ' // Usage: cscript.exe Install-APPLICATION.wsf [/debug:true]
    ' // Creator: Daniel Vega
    ' // Version: 1.0 - 1/26/2015
    ' // Notes:
    ' //
    ' //***************************************************************************
     
    '//----------------------------------------------------------------------------
    '//
    '// Global constant and variable declarations
    '//
    '//----------------------------------------------------------------------------
     
    Option Explicit
     
    Dim iRetVal
     
    '//----------------------------------------------------------------------------
    '// End declarations
    '//----------------------------------------------------------------------------
     
    '//----------------------------------------------------------------------------
    '// Main routine
    '//----------------------------------------------------------------------------
     
    On Error Resume Next
    iRetVal = ZTIProcess
    ProcessResults iRetVal
    On Error Goto 0
     
    '//---------------------------------------------------------------------------
    '//
    '// Function: ZTIProcess()
    '//
    '// Input: None
    '//
    '// Return: Success - 0
    '// Failure - non-zero
    '//
    '// Purpose: Perform main ZTI processing
    '//
    '//---------------------------------------------------------------------------
    
    Function ZTIProcess()
    
    	Dim sSetupFile
    	Dim sArguments
    
    	sSetupFile = oUtility.ScriptDir & "\Source\APPLICATION.MSI"
    	sArguments = "/switches"
    
    	' Disable Zone Checks
    	oEnv("SEE_MASK_NOZONECHECKS") = 1
    
    	'Install APPLICATION
    
    	oLogging.CreateEntry oUtility.ScriptName & ": Starting installation", LogTypeInfo
    
    	If not oFSO.FileExists(sSetupFile) then
    		oLogging.CreateEntry oUtility.ScriptName & ": " & sSetupFile & " was not found, unable to install", LogTypeError
    		ZTIProcess = Failure
    		Exit Function
    	End if
    
    	iRetVal = oUtility.RunWithHeartbeat("msiexec.exe /i """ & sSetupFile & """ " & sArguments & " /lew """ & oUtility.LocalRootPath & "\SMSOSD\OSDLOGS\Install-APPLICATION.log""")
    	
    	if (iRetVal = 0) or (iRetVal = 3010) then
    		ZTIProcess = Success 
    	Else 
    		ZTIProcess = Failure
    		oLogging.CreateEntry "Install-APPLICATION: Error installing Application. Check the log " & oUtility.LocalRootPath & "\SMSOSD\OSDLOGS\Install-APPLICATION.log", LogTypeWarning
    	End If
    
    	' Enable Zone Checks
    	oEnv.Remove("SEE_MASK_NOZONECHECKS")
    
    	oLogging.CreateEntry oUtility.ScriptName & ": Return code from command = " & iRetVal, LogTypeInfo
    	oLogging.CreateEntry oUtility.ScriptName & ": Finished installation", LogTypeInfo
    	
    End Function
     
    </script>
    </job>
    


    If this post is helpful please vote it as Helpful or click Mark for answer.

    • Marked as answer by pob579 Tuesday, June 9, 2015 9:36 PM
    Tuesday, June 9, 2015 8:49 PM
  • misexec.exe /I blah.msi /qn /lvx* %LogPath%\blahAppInstall.log

    Where to find %Logpath% on the local machine: http://techthoughts.jakemorrison.name/troubleshoot-mdt-deployments-with-log-files/

    Keith's take on a proper msiexec cmdline (and it is better than mine): https://keithga.wordpress.com/2013/09/04/application-installation-and-packaging-via-mdt-and-sccm/

    I didn't find any msi install quick help anywhere.  For the most part though reading through the logs and knowing what the return codes mean will make it a little less confusing.

    http://desktopengineer.com/msierrors


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.




    Tuesday, June 9, 2015 5:35 PM
    Moderator
  • If you create a VB wrapper you would still import your application as normal but instead of using the command msiexec /i whatever, you replace it with cscript and name of script.

    If you already imported your application, then add the script to the working directory and replace your install command with the new cscript command.

    In my script I keep the MSI and other necessary files in a Source folder. So the working directory would look like this.


    If this post is helpful please vote it as Helpful or click Mark for answer.

    • Marked as answer by pob579 Tuesday, June 9, 2015 10:59 PM
    Tuesday, June 9, 2015 9:45 PM

All replies

  • misexec.exe /I blah.msi /qn /lvx* %LogPath%\blahAppInstall.log

    Where to find %Logpath% on the local machine: http://techthoughts.jakemorrison.name/troubleshoot-mdt-deployments-with-log-files/

    Keith's take on a proper msiexec cmdline (and it is better than mine): https://keithga.wordpress.com/2013/09/04/application-installation-and-packaging-via-mdt-and-sccm/

    I didn't find any msi install quick help anywhere.  For the most part though reading through the logs and knowing what the return codes mean will make it a little less confusing.

    http://desktopengineer.com/msierrors


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.




    Tuesday, June 9, 2015 5:35 PM
    Moderator
  • I don't know what error that is and you can find a long list of error codes from Microsoft here - https://msdn.microsoft.com/en-us/library/aa372835(v=vs.85).aspx

    I like to install applications using a VB wrapper so I can get error logging. Similar to what Ty suggested, but this will make use of MDT variables. Not only will it be logged in BDD.log but it will create it's own log file as well. Just replace "APPLICATION.MSI" with the name of the msi you're trying to install.

    <job id="Install-APPLICATION">
    <script language="VBScript" src="..\..\scripts\ZTIUtility.vbs"/>
    <script language="VBScript">
     
    ' //***************************************************************************
    ' // Purpose: Template with error logging
    ' // Usage: cscript.exe Install-APPLICATION.wsf [/debug:true]
    ' // Creator: Daniel Vega
    ' // Version: 1.0 - 1/26/2015
    ' // Notes:
    ' //
    ' //***************************************************************************
     
    '//----------------------------------------------------------------------------
    '//
    '// Global constant and variable declarations
    '//
    '//----------------------------------------------------------------------------
     
    Option Explicit
     
    Dim iRetVal
     
    '//----------------------------------------------------------------------------
    '// End declarations
    '//----------------------------------------------------------------------------
     
    '//----------------------------------------------------------------------------
    '// Main routine
    '//----------------------------------------------------------------------------
     
    On Error Resume Next
    iRetVal = ZTIProcess
    ProcessResults iRetVal
    On Error Goto 0
     
    '//---------------------------------------------------------------------------
    '//
    '// Function: ZTIProcess()
    '//
    '// Input: None
    '//
    '// Return: Success - 0
    '// Failure - non-zero
    '//
    '// Purpose: Perform main ZTI processing
    '//
    '//---------------------------------------------------------------------------
    
    Function ZTIProcess()
    
    	Dim sSetupFile
    	Dim sArguments
    
    	sSetupFile = oUtility.ScriptDir & "\Source\APPLICATION.MSI"
    	sArguments = "/switches"
    
    	' Disable Zone Checks
    	oEnv("SEE_MASK_NOZONECHECKS") = 1
    
    	'Install APPLICATION
    
    	oLogging.CreateEntry oUtility.ScriptName & ": Starting installation", LogTypeInfo
    
    	If not oFSO.FileExists(sSetupFile) then
    		oLogging.CreateEntry oUtility.ScriptName & ": " & sSetupFile & " was not found, unable to install", LogTypeError
    		ZTIProcess = Failure
    		Exit Function
    	End if
    
    	iRetVal = oUtility.RunWithHeartbeat("msiexec.exe /i """ & sSetupFile & """ " & sArguments & " /lew """ & oUtility.LocalRootPath & "\SMSOSD\OSDLOGS\Install-APPLICATION.log""")
    	
    	if (iRetVal = 0) or (iRetVal = 3010) then
    		ZTIProcess = Success 
    	Else 
    		ZTIProcess = Failure
    		oLogging.CreateEntry "Install-APPLICATION: Error installing Application. Check the log " & oUtility.LocalRootPath & "\SMSOSD\OSDLOGS\Install-APPLICATION.log", LogTypeWarning
    	End If
    
    	' Enable Zone Checks
    	oEnv.Remove("SEE_MASK_NOZONECHECKS")
    
    	oLogging.CreateEntry oUtility.ScriptName & ": Return code from command = " & iRetVal, LogTypeInfo
    	oLogging.CreateEntry oUtility.ScriptName & ": Finished installation", LogTypeInfo
    	
    End Function
     
    </script>
    </job>
    


    If this post is helpful please vote it as Helpful or click Mark for answer.

    • Marked as answer by pob579 Tuesday, June 9, 2015 9:36 PM
    Tuesday, June 9, 2015 8:49 PM
  • Dan,

    can I enter vbs file path in Applications node?

    Could you please show ... Just to be sure.

    Thanks.


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis


    • Edited by pob579 Tuesday, June 9, 2015 9:37 PM
    Tuesday, June 9, 2015 9:36 PM
  • %1 is not a valid Win32 application.

    Source: Windows
    -----

    pob579,

    Did you attempt to run this x64 app on a 32 bit machine?


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, June 9, 2015 9:45 PM
    Moderator
  • If you create a VB wrapper you would still import your application as normal but instead of using the command msiexec /i whatever, you replace it with cscript and name of script.

    If you already imported your application, then add the script to the working directory and replace your install command with the new cscript command.

    In my script I keep the MSI and other necessary files in a Source folder. So the working directory would look like this.


    If this post is helpful please vote it as Helpful or click Mark for answer.

    • Marked as answer by pob579 Tuesday, June 9, 2015 10:59 PM
    Tuesday, June 9, 2015 9:45 PM
  • Ty,

    it is W7 x64 machine (i5, but must run on W7)


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Tuesday, June 9, 2015 9:47 PM
  • BTW, can I use at all file_name.msi at all as I used it (see initial post)?

    I did not get any error when imported the app and saved it. So I assume that msi is not restricted in the form I typed it in.

    Or "misexec.exe /I blah.msi /qn /lvx* %LogPath%\blahAppInstall.log" is a must for reading msi?


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Tuesday, June 9, 2015 9:51 PM
  • Where blah could be anything:

                                        blah                                                blah

                             ▼                                 ▼

    msiexec /I JunosPulse-x64.msi /lvx* %LogPath%\JunosPulse-x64.log

    grr not able to align my arrows well...


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.




    Tuesday, June 9, 2015 10:09 PM
    Moderator
  • Ty,

    I don't have any issue with understanding your "blah". Sure blah should be replaced by file_name.

    But please answer my question:

    BTW, can I use at all file_name.msi at all as I used it when importing application in Applications node(see initial post)?

    I did not get any error when imported the app and saved it. So I assume that msi is not restricted in the form I typed it in.

    Or "misexec.exe /I file_name.msi /qn /lvx* %LogPath%\file_nameAppInstall.log" is a must for reading msi?


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Tuesday, June 9, 2015 10:47 PM
  • Dan, could not be more clear... Thanks!

    Will try tomorrow.


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Tuesday, June 9, 2015 10:59 PM
  • Oh sorry.  Your command could be as simple as msiexec /I AnyAndEveryThing.msi /qn.  Also, I just add the /lvx* %LogPath%\AnyAndEveryThing.log because I want EVERYTHING from msiexec logged and I 100% for sure always know where to find the %LogPath%.

    And yes your syntax should have worked.  When I mentioned the x64 issue above that is what the error 163 maps to. 


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Wednesday, June 10, 2015 12:03 AM
    Moderator
  • code is 193 not 163... I am not checking it now. But if you checked 163 and it indicates 32 bit relation it is not my issue. Because the code I mentioned is 193.

    I guess my syntax is wrong because msiexec is missing and it is very possible that I got this error.

    Will check tomorrow both options yours and Dan's.


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis

    Wednesday, June 10, 2015 12:52 AM
  • and here I found a similar discussion that have good examples too

    https://social.technet.microsoft.com/Forums/en-US/d4b0b5ba-cb73-4f28-a0b4-d554a6db5b07/msi-in-subfolder-msiexec-install-command?forum=mdt

    in the link above there is a link to some APP tool  MDTMSIApp on Keith's page but it brings home page of the site (probably old link). May be you have an idea what APP tool they talking about.

    JUST found this tool... don't know if it will really needed now. Have to take a look....

    http://xtremeconsulting.com/blog/quickly-add-msi-package-to-mdt-2010-new-tool/


    --- When you hit a wrong note its the next note that makes it good or bad. --- Miles Davis



    • Edited by pob579 Wednesday, June 10, 2015 1:27 AM
    Wednesday, June 10, 2015 1:17 AM
  • In case this makes more sense to you here's what the code I gave you will do. Below is the log that is created.

    If you notice, it's doing the same thing as if you just used what Ty is saying, but with my script it logs any errors that might happen which makes troubleshooting a bit easier. I'm using /lew (Which logs Nonfatal warnings and All error messages) but you can add other logging options.


    Where I have /switches in the code, replace that with /qn /norestart (Quiet, No UI, No forced reboot) for example.

    After running a task sequence and using the template for lots of your apps, you will see a log folder similar to this:

    Some of my scripts are more complex, but you get the idea of how it can help.


    If this post is helpful please vote it as Helpful or click Mark for answer.


    • Edited by Dan_Vega Wednesday, June 10, 2015 2:34 AM
    Wednesday, June 10, 2015 2:33 AM