Jump to content




boundsw

Keep getting error code -3 when trying to deploy software



Recommended Posts

Hi all.

 

Relatively new to SCCM, but have been playing for a while and managing to get things working. I have got a whole bunch of applications to deploy to xp and w7 machine collections with success, but now im stuck on one and I need some help !! That’s where you all come in, hopefully.

Ok, so this is the basics of what I have.

 

Application to deploy is ‘Cisco Ironport desktop encryption plugin’

 

I have created answer files for this install on win xp/7 machines.

 

I have run the install, referring to the answer file manually on xp and 7 machines, and the install works. Great.

 

Answer file and .exe file are placed in the package source location on the SCCM server

 

I have two test collections, one for XP, and one for 7 machines

 

I have created one package “Ironport Encryption Plugin” with two programs “Install Cisco Ironport W7 x64” and “Install Cisco Ironport XP x86”

 

I have created 2 advertisements that are assigned to the two collections.

 

The win XP install deploys and works

The W7 install always fails, and I cannot work out why !

 

Windows XP command that works:

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1\\******\support$\SCCMDeploy\Cisco Ironport Plugin\winxpunattend.iss

 

Windows 7 command that DOES NOT work

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1\\******\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss

 

(***** is the DFSRoot comapny name, so I have removed that here)

 

The error in the system status is :

 

The program for advertisement "00120023" failed ("00100040" - "Install Cisco Ironport W7 x64"). A failure exit code of -3 was returned.

User context: NT AUTHORITY\SYSTEM

 

Possible cause: Systems Management Server (SMS) determines status for each program it executes. If SMS cannot find or correlate any installation status Management Information Format (MIF) files for the program, it uses the program's exit code to determine status. An exit code of -3 is considered a failure.

Solution: For more information on the exit code, refer to the documentation for the program you are distributing.

Share this post


Link to post
Share on other sites


It's an Install Shield error and means that the answer file has not been found. Did you quote the path of your answer file? You got a space in there.

And why do you call the whole path at all? Is the file not in your package?

Is suggest to put the whole command into cmd file and to run the cmd.

 

pushd %~dp0

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"w7x64unattend.iss"

popd

exit /b %errorlevel%

 

 

Edit: Just to make sure. Did you create the answer file on a 64Bit machine?

Share this post


Link to post
Share on other sites

Thanks for the replies !! :)

 

Great - so this is an install shield error, I have been trawling the application error codes and the SCCM error codes trying to find out what this problem was, and i was looking in the wrong place the entire time ! damn it. :D

 

So I thought about using quotes, but was not convinced as the XP install worked in this format without quotes - so why wouldnt this one? - but ill try this.

 

Why do i quote the entire path ? why do I actually :rolleyes: . Your right, the answerfile should be downlloaded to the local machine with the .exe, so i can just referance this local copy ! let me try that option too.

 

Yes I created the answerfile on the correct machine OS's and architecture. If I place the .exe on the root of c:\ and run a cmd prompt with the installer specifying the answerfile (like this c:\CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1\\******\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss) it works, so i know the answerfile is ok.

 

Ill try the above options and come back !

 

THANKS :)

Share this post


Link to post
Share on other sites

I agree with Peter33 - Its not wise to reference the iss file from a network share - include it in the software package and reference it locally, with the obviously benefits of hash check and BITS transfer etc. (even though its a small file, its still good practice).

 

Also related, and in response to what you have mentioned above, just because you have hosted the source for the SCCM package on a particular share (\\******\support$\SCCMDeploy\Cisco Ironport Plugin as you put it), does not mean that because the clients can download the package contents, that they can access that share using local system creds as part of an advertsied SD package. Remmeber, the clients will download the package content from \\server\smspgkx$ where server is your DP and X is the drive letter that the DP hosts the software on. Therefore, the share permissions on the \support$ and the \smspkgx$ could be different and in this case the error could be related to clients not being able to access the iss file using the unc path you have used.

 

Finally, note that the variable %~dp0 will only work in a batch file - but you should commit it to memory as its very useful IMO. "Percent, squiggle, Dee Pee Zero" is how i have remembered it for the last decade or so!

 

Hope this all helps.

Share this post


Link to post
Share on other sites

Thanks for the info from all.

 

As stated Im pretty new to this, I have a book and a server - im learning on the fly (and hoping I dont distroy anything), so any advice on best practice any how things work is welcome !!

 

So I have tried refering to the answerfile locally, but this still throws an error, but I have just noticed something else - the command line appears to get modified.

 

This is what I have in the command line "CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1w7x64unattend.iss"

 

Error:

 

Program started for advertisement "00120023" ("00100040" - "Install Cisco Ironport W7 x64").

Command line: "\\SERVER.DOMAIN.CORPS\PACKAGES\SMSPKG\00100040\CiscoEmailSecurity-7-2-0-039.exe" /s /v /qn /f1w7x64unattend.iss

Working directory: \\SERVER.DOMAIN.CORPS\PACKAGES\SMSPKG\00100040\

User context: NT AUTHORITY\SYSTEM

 

followed by

 

The program for advertisement "00120023" failed ("00100040" - "Install Cisco Ironport W7 x64"). A failure exit code of -3 was returned.

User context: NT AUTHORITY\SYSTEM

Possible cause: Systems Management Server (SMS) determines status for each program it executes. If SMS cannot find or correlate any installation status Management Information Format (MIF) files for the program, it uses the program's exit code to determine status. An exit code of -3 is considered a failure.

Solution: For more information on the exit code, refer to the documentation for the program you are distributing.

 

There are added quotes and added UNC path to the error !! how am i doing this !

Share this post


Link to post
Share on other sites

Just a thought is UAC disabled on the win7 Client prior to installation of this software?

Have you tried different methods of install i:e (1) run from DP (2) download locally before installation??

 

pushd %~dp0

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"w7x64unattend.iss"

popd

exit /b %errorlevel%

 

Have you tiried this in a bat file or Cmd file and specified the program parameter to be name-of-file.bat or name-of-file.cmd?

 

You could also try changing the name of the setup file to be just setup.exe......it can cause problems if the string is too long to install some software...by doing this it is quite a bit shorter.

You could also try this in the form of a bat file or Cmd file:

 

Start /Wait "%~dp0setup.exe /s /v /qn /w7x64unattend.iss"

 

As long as all files are in the one directory you may not need the /f1 switch as seen in above.

Share this post


Link to post
Share on other sites

Hi all,

 

Ok, so I have now tried to embed the command in a .cmd file as peter33 suggested.

 

The command in the package is "w7x64setup.cmd"

 

Error :

 

Program started for advertisement "00120023" ("00100040" - "Install Cisco Ironport W7 x64").

Command line: "\\SERVER.DOMAIN.CORPS\PACKAGES\SMSPKG\00100040\w7x64setup.cmd"

Working directory: \\SERVER.DOMAIN.CORPS\PACKAGES\SMSPKG\00100040\

User context: NT AUTHORITY\SYSTEM

 

and

 

The program for advertisement "00120023" failed ("00100040" - "Install Cisco Ironport W7 x64"). A failure exit code of -3 was returned.

User context: NT AUTHORITY\SYSTEM

Possible cause: Systems Management Server (SMS) determines status for each program it executes. If SMS cannot find or correlate any installation status Management Information Format (MIF) files for the program, it uses the program's exit code to determine status. An exit code of -3 is considered a failure.

Solution: For more information on the exit code, refer to the documentation for the program you are distributing.

Share this post


Link to post
Share on other sites

Rocket man - yes UAC is off

 

Also, as above, im going to change the install to "run from local" from "run from DP" - as I just stated above.

 

This must be ho wmy command line is getting moddified !

Share this post


Link to post
Share on other sites

Hi bound,

 

sorry, i got the wrong error code from my memory. Just double checked it again.

-3 maens "Required data not found in the Setup.iss file"

I had such a case some month back, where the setup wanted to install a prerequisite, that had been already installed on the machine where the answer file was created. The setup came up with a dialog that was not captured and threw rhis error. The solution was to install the prereq program before the setup as single package.

Share this post


Link to post
Share on other sites

Peter33

 

This app does require .net of some version (cant remember off hand) and this does pop up to install if its not already installed. This could be the problem.

 

Maybe Ive been having 2 issues at the same time.

 

Im currently re-running the deploy to my win 7 test VM, with the "run from local" option - ill see where this takes make 1st, but it sounds like i might need a new answerfile !

Share this post


Link to post
Share on other sites

If it requires .Net then you could have the .net executable also in the package and use the Start /Wait script mentioned above so it could be like this:

 

Start /Wait "%~dp0net4.0.exe /parameters"

Start /Wait "%~dp0setup.exe /s /v /qn /w7x64unattend.iss"

 

This will install .net 1st and then move onto your main program!! B)

Share this post


Link to post
Share on other sites

ok, so the "run from local" option is still throwing an error. for some reason SCCM is putting quotes in the wrong place.

 

If i use the command

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1w7x64unattend.iss

or

"CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1w7x64unattend.iss"

 

The errors are as below:

 

Program started for advertisement "00120023" ("00100040" - "Install Cisco Ironport W7 x64").

Command line: "C:\Windows\SysWOW64\CCM\Cache\00100040.19.System\CiscoEmailSecurity-7-2-0-039.exe" /s /v /qn /f1w7x64unattend.iss

Working directory: C:\Windows\SysWOW64\CCM\Cache\00100040.19.System\

User context: NT AUTHORITY\SYSTEM

 

and

 

The program for advertisement "00120023" failed ("00100040" - "Install Cisco Ironport W7 x64"). A failure exit code of -3 was returned.

User context: NT AUTHORITY\SYSTEM

Possible cause: Systems Management Server (SMS) determines status for each program it executes. If SMS cannot find or correlate any installation status Management Information Format (MIF) files for the program, it uses the program's exit code to determine status. An exit code of -3 is considered a failure.

Solution: For more information on the exit code, refer to the documentation for the program you are distributing.

 

See how the switches are being put outside the quotes !

 

Im going to try the CMD batch file option next

Share this post


Link to post
Share on other sites

Ok, so im still having this problem !!

I have tried with the cmd file option now aswell, using two ways to ref the answerfile.

 

1.

pushd %~dp0

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"\\<DFSRoot\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss"

popd

exit /b %errorlevel%

 

2.

pushd %~dp0

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1w7x64unattend.iss

popd

exit /b %errorlevel%

 

Both error in the same way

 

Program started for advertisement "00120023" ("00100040" - "Install Cisco Ironport W7 x64").

Command line: "C:\Windows\SysWOW64\CCM\Cache\00100040.24.System\w7x64setup.cmd"

Working directory: C:\Windows\SysWOW64\CCM\Cache\00100040.24.System\

User context: NT AUTHORITY\SYSTEM

 

and

 

The program for advertisement "00120023" failed ("00100040" - "Install Cisco Ironport W7 x64"). A failure exit code of -3 was returned.

User context: NT AUTHORITY\SYSTEM

Possible cause: Systems Management Server (SMS) determines status for each program it executes. If SMS cannot find or correlate any installation status Management Information Format (MIF) files for the program, it uses the program's exit code to determine status. An exit code of -3 is considered a failure.

Solution: For more information on the exit code, refer to the documentation for the program you are distributing.

 

I have been to the test machine, browsed to "C:\Windows\SysWOW64\CCM\Cache\00100040.24.System\" and ran the secript manually, and the application installs. So i know it 100% works.

 

Thanks for all the input so far.

 

Any other ideas here ?

Share this post


Link to post
Share on other sites

I had not seen that no - thanks for the find ! :)

 

(This part is now not SCCM related)

 

Either im having a nighmare, or something is not right. I have extracted the .exe to a folder on c:\ (on the test machine). On the info from "David Simmons" he then states that the msi can be run by using the command:

 

msiexec.exe /i "msiname.msi" /qn

 

But this does nothing.

 

So if I remove the /qn, msiexec compalins as soon as its run : "This installation cannot be run directly launching the MSI package, You must run setup.exe"

 

arrgghh !

 

back to the SCCM part.

 

Why is SCCM adding the quotes in the wrong place ! - any ideas about this?

 

Thanks so far guys - much appreciated.

Share this post


Link to post
Share on other sites

Hi Bound,

 

you can edit the MSI file to get rid of this launch condition.

There is a free MSI editor named Orca. Get it and open the MSI file with, then go to the "LaunchCondition" preperty table and delete the entry. Save the MSI, and you are done.

 

 

Edit:

 

Hope you also did read what he was stating about the custom actions.

 

"for a silent install. I still had to use an msi editor (installshield) to create a transform to remove two custom actions that were causing errors during the msi installtion: CheckLanguageUpdaterResult and CheckUpdateFeaturesResult. The application still installed correctly before removing those errors, I just needed to remove them so SCCM would not report a failed installation."

 

Not sure if this can be done easily with Orca. I am using Wise Package Studio for MSI editing, but this is not a free product.

Share this post


Link to post
Share on other sites

Rocket man.

Yes this version is defo x86 and x64 compatible.

I dont know if its free, ill have to check. Its Cisco Any conenct VPN client for our ASA firewall.

 

Peter33.

Ok, let me download "Orca" and see what i can do.

yes I did read that part about the silent install, but as I was falling before that hurdle at normal intercative install, i kinda didnt get that far ! :)

Share this post


Link to post
Share on other sites

ok - update.

 

Got the package to download to the machine.

Open a cmd window (in admin mode)

Browse to the cache on the test machine.

Run "w7x64setup.cmd"

 

w7x64setup.cmd is as below :

 

pushd %~dp0

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"w7x64unattend.iss"

popd

exit /b %errorlevel%

 

In the cmd window I see (at the end of the path)

 

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"w7x64unattend.iss"

popd

exit /b -3

 

So i change the .cmd file so the .iss answerfile is the one on the SCCM server (not the locally copied down file) - and i get the below when i run it in an elevated cmd window.

 

CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"\\DFSRoot\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss"

popd

exit /b -0

 

and its works.

 

So i have managed to replicate the problem locally, and see the error code now.

But why cant it see the local file !, in the same path whn using the "pushd %~dp0" command

 

 

Im in catch22 now.

SCCM puts the quotes in the wrong place for some strange reason when suing the UNC path to answerfile, and it fails with error -3 (but run locally works)

Using the short answerfile location, SCCM command looks correct, but for some reason the setup does not find the answerfile, and i get error -3 (SCCM and locally run)

 

and its the same no mater how i ref the command in a cmd file, if i use "pushd %~dp0" or not, if i use the local or UNC file paths - it always fails with error -3

 

what a nightmare !

 

on a side note, im having no luck with orca at the minute.

Share this post


Link to post
Share on other sites

move the .exe, the 2 answefiles, and the cmd to a temp folder called "warren" in the root of c:\ on the test machine "warrentest"

 

Does not work :

 

pushd %~dp0

setup.exe /s /f1w7x64unattend.iss

popd

exit /b %errorlevel%

 

share the folder called warren on the test machine, and ref this share in the cmd :

 

pushd %~dp0

setup.exe /s /f1"\\warrentest\warren\w7x64unattend.iss"

popd

exit /b %errorlevel%

 

This works :)

 

so for me, the answer to this is, keep referencing the iss file in a share (which just happens to be the SCCM server)

 

BUT why is SCCM, changing my command line and putting the quotes in the wrong place !

Share this post


Link to post
Share on other sites

Conclusion = The Setup wants an absolute path for the answer file ? This is a behaviaor i know from Oracle Client Setups but not from Install Shield Installers.

 

If you name the answer file Setup.iss and call the Setup without the /f1 switch it should work though. The Setup.exe should be looking for a Setup.iss by itself. This neat little setup seems to be some kind of nightmare ^_^

First thing i would try is to transform the whole thing into a Wise MSI. Unfortunately you don't have this opportunity.

Share this post


Link to post
Share on other sites

Thanks for everyones input and ideas with this.

 

The absolute path conclusion does appear to be an answer for the problem, but its not a resolution unfortunatly. :(

 

Whats still bugging me is, if I use the command string in SCCM of : CiscoEmailSecurity-7-2-0-039.exe /s /v /qn /f1"\\DFSROOT\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss"

 

I get an error of

 

Program started for advertisement "00120023" ("00100040" - "Install Cisco Ironport W7 x64").

Command line: "C:\Windows\SysWOW64\CCM\Cache\00100040.29.System\CiscoEmailSecurity-7-2-0-039.exe" /s /v /qn /f1"\\DFSRoot\support$\SCCMDeploy\Cisco Ironport Plugin\w7x64unattend.iss"

Working directory: C:\Windows\SysWOW64\CCM\Cache\00100040.29.System\

User context: NT AUTHORITY\SYSTEM

 

why is the command format being changed ? Has anyone seen this behavoiur before ?

Share this post


Link to post
Share on other sites

I don't see anything wrong in the command. SCCM was only appending the absolute path to the executable, but quotes are set in acorrect way. The only problem i see that the system has no access to the share. Has the Network Acccess Account a read access to the share?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×