Install same Application multiple times

Hi,

I have an Application that upgrades the BIOS on my Dell machines. It is a single deployment type that runs a VBS script. It detects how many BIOS upgrades are required to get to current (Dell have incremental BIOS patches), runs the required patch, creates a scheduled task that re-launches the script on startup, reboots the machine, installs the next patch, and so on, until the machine is at the appropriate level.

This approach can't be used in a TS as the Install Application step cannot handle the forced reboot or the subsequent reboots caused by the script re-launching after start-up.

I have created a task sequence as follows:

Build BIOS Install List
Install Application - Dell BIOS Update
Restart Computer
Install Application - Dell BIOS Update
Restart Computer
Install Application - Dell BIOS Update
Restart Computer

When this TS runs it successfully installs the first BIOS but seems to ignore the 2nd and 3rd Install Application steps. I have even inserted 3 minute pauses after the reboot to make sure that the client is properly initialised to no avail.

I think the issue is that the TS is detecting that the Dell BIOS Update Application has already been run and therefore skipping over it. How do I get it to 'forget' and start the Install Application step cleanly again? Could I delete log files or WMI entries?

Thanks.

August 26th, 2015 6:31am

Did you look at the SMSTS.log ?

This would tell us why the task sequence is not running the remaining step

Free Windows Admin Tool Kit Click here and download it now
August 26th, 2015 6:39am

Why don't you make this three different apps, instead of just one?
August 26th, 2015 7:13am

An application will not be re-installed / re-run if it is already detected according to its detection method. 
Free Windows Admin Tool Kit Click here and download it now
August 26th, 2015 7:52am

Hi Sorry for not responding sooner... Seems the notification e-mails never got through :(

There's nothing in the SMSTS.log file that I can see which would indicate an error. The first install step says:

[ smsinstallapp.exe ]	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Application Names: 	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
'ScopeId_E4312D1B-7962-4D67-A517-C17362B53584/Application_6b939162-163c-4cc6-81bb-5a504e602984'	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
BaseVar   = '', ContinueOnError='False'	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
SwdAction = '0001'	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Setting progress step for initialization	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Setting total steps to 1	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Succeeded loading resource DLL 'C:\Windows\CCM\1033\TSRES.DLL'	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Adding 1 installs to steps	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Setting total steps to 2	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Step 1 out of 2 complete	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
Installing application 'Dell BIOS Update'	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)
WaitForCCMExec successful	InstallApplication	01/09/2015 09:06:58	5812 (0x16B4)

While the second step doesn't even start processing the install, from what I can tell:

[ smsinstallapp.exe ]	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Application Names: 	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
'ScopeId_E4312D1B-7962-4D67-A517-C17362B53584/Application_6b939162-163c-4cc6-81bb-5a504e602984'	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
BaseVar   = '', ContinueOnError='False'	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
SwdAction = '0001'	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Setting progress step for initialization	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Setting total steps to 1	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Succeeded loading resource DLL 'C:\Windows\CCM\1033\TSRES.DLL'	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Adding 1 installs to steps	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Setting total steps to 2	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Step 1 out of 2 complete	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Step 2 out of 2 complete	InstallApplication	01/09/2015 09:16:15	5732 (0x1664)
Process completed with exit code 0	TSManager	01/09/2015 09:16:15	148 (0x0094)

September 1st, 2015 4:36am

If you're using the application model, then the detection method of the application probably detects that it's already been done (as mentioned by Torsten). This is one of those typical cases in which an old-school package and program are a better fit.
Free Windows Admin Tool Kit Click here and download it now
September 1st, 2015 4:44am

I'm not sure that's worth it to be honest. I already have to update the install script and the detection logic each time a new BIOS gets released and that's plenty enough. My test model needs 3 BIOS updates, some other systems need 4 so I'd have to maintain 4 separate applications instead. Seems a bit much if I could just get the TS to re-run the install.
September 1st, 2015 4:51am

The Application isn't detected as installed unless the BIOS version is the same as the version I want to go to. I have a VBS detection script and this is basically the logic stripped out:

For Each Instance in oWMI.ExecQuery("Select * From Win32_Bios",,48) 
   ComputerBIOSVersion = Instance.SMBIOSBIOSVersion 
Next

For Each Instance in oWMI.ExecQuery("Select * From Win32_ComputerSystem",,48) 
   Model = Instance.Model 
Next

Select Case Model 
   Case "Latitude E5420" : TargetBIOSVersion="A14"
End Select

If ComputerBIOSVersion = TargetBIOSVersion Then
    WScript.StdOut.Write "Target BIOS version already installed."
    WScript.Quit(0)
End If
If ComputerBIOSVersion < TargetBIOSVersion Then
    WScript.Quit(0)
End If

When my install script runs, it does the same check but also knows what incremental updates are required along the way to get it to the target BIOS version. If it detects incremental updates, it creates a boot time scheduled task to re-run itself. This then puts on the next update and restarts the PC before the ConfigMgr client has had time to initialize. The scheduled task removes itself once it's up to the target BIOS version and when the ConfigMgr client does finally get to initialise, it sees the application as installed.

Free Windows Admin Tool Kit Click here and download it now
September 1st, 2015 5:09am

Yeah, due to the detection method of an application you need multiple applications to facilitate something like. If you want to do it in one go then you should look at a package and program.
September 1st, 2015 5:10am

Ah OK. I was thinking it was probably something to do with it detecting that it had already been run during the TS so skipped over it. I was hoping there was a way of resetting that, I tried kicking off a machine policy refresh and application deployment check but neither of these worked.

I'll create a package from the same source location as the application and see what happens.

Free Windows Admin Tool Kit Click here and download it now
September 1st, 2015 7:05am

Well, I got it working as a package with far less effort than I was expecting.

I re-used the build a Dynamic Application Install Variable List vbs script to create a BIOSxx variable for each update that needs installing. I then run the VBS in the package 4 times, each time checking for the existence of the BIOSxx variable.

I've set the package to update on a schedule so that when I modify my Application I don't have to worry about changing the Package.

I still think it's a shame I can't just achieve the same thing with a single application but this works and requires no additional management so I'm happy. Thanks :)

September 2nd, 2015 5:20am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics