Hi,

Is this possible? basically I have the same software title but there are two different installs which work on certain machines. Is there a way I can do this?

Thanks
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
There's two ways you could approach this.

1-Create custom inventory rules that check to see which software is needed.

2-Upload both installers and have a script determine which installer to use.
Answered 01/06/2012 by: dchristian
Red Belt

Please log in to comment
0
I usually run into this problem with x86 vs x64 and go with the custom inventory rule.

Casey
Answered 01/06/2012 by: cmccracken
Orange Senior Belt

Please log in to comment
0
A smart label could be used as well to put the machines into two different groups. What are your criteria mac456?
Answered 01/06/2012 by: GillySpy
Seventh Degree Black Belt

Please log in to comment
0
I have run into this as well with Symantec Endpoint Protection. The software inventory entry is the same for both the 32bit and 64bit clients, however they are different installers. I'm contemplating the best approach from the suggestions above.
Answered 01/09/2012 by: grayematter
Fourth Degree Black Belt

Please log in to comment
0
In the case where both installs account to the same DB record in software inventory, I've handled this a few ways:
1- Custom inventory rule for x86 vs. x64
2- Zip together both files and a batch file that will install the correct version based on the system architecture.
3- Zip together both files and use smart labels to target the machines and have two MI's with different command lines to install.
4- Script to install rather than MI.
Answered 01/09/2012 by: cblake
Red Belt

  • Had this same issue with trying to install SEP 12. Option 3 worked out GREAT! Thanks for suggesting!
Please log in to comment
0
cblake / cmccracken what would you do for a custom inventory (CI) rule for detecting x86? The only reliable way I currently know of to detect 32-bit is to manually select the OSes in the custom entry and not use any actual CI rule.

2,3 and 4 are good.

The simplest thing for some to understand is probably a smart label separating your machines into 32-bit and 64-bit. The wizard can do this but it's code is harder to read.
  • Smart label 32:
select MACHINE.ID
from MACHINE
where OS_ARCH like '%x86%'

  • Smart label 64:
select MACHINE.ID
from MACHINE
where OS_ARCH like '%x64%'


An MI that targets these labels will only run if the software is not detected and it matches the architecture of it's label.

A script that targets these labels will only effectively run if it matches your verify step (e.g. verify installed file does or doesn't exist) in the script and it matches the architecture of it's label.

A bit of a tangent here, but many might be trying to use a label that is a combination of things....
If you want a smart label that is a combination of things (caution: Straying from simple now) then you could probably add "and OS_ARCH LIKE '%blah%' to your smart label SQL or base it off this label. If you are going to base if off the label code above then there are some tricky combinations to be aware of. A common example is contains or does not contain software. Here is the code for the four combinations of using a software criteria combined with a label criteria. Note that you could write some of these in a much simple way but I have intentionally written them as similar as possible to highly the differences.

In all the below make sure that your smart label has a higher order then the 32-bit/64-bit label (Home->label->smart label->choose action->order machine smart labels)
Here are the four combinations the wizard could do:
  1. software installed and in the 32-bit label (wizard could do this)
  2. software installed and not in the 32-bit label (wizard can do this)
  3. software not installed and in the 32-bit label (wizard can do this)
  4. software not installed not and in the 32-bit label (wizard can do this)
note: You wouldn't often use 2 and 4 here -- you would probably just use the 64-bit label instead of not in the 32-bit

/* if specific software is INSTALLED and 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME LIKE '%32-bit') ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NOT NULL /* software is not missing*/
and ML.ID IS NOT NULL /* label is not missing */

/* if specific software is INSTALLED and NOT 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME LIKE '%32-bit') ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NOT NULL /* software is not missing*/
and ML.ID IS NULL /* label is missing */

/* if specific software is NOT INSTALLED and 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME LIKE '%32-bit') ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NULL /* software is missing*/
and ML.ID IS NOT NULL /* label is not missing */

/* if specific software is NOT INSTALLED and NOT 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME LIKE '%32-bit') ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NULL /* software is missing*/
and ML.ID IS NULL /* label is missing */



Here are the four combinations with additional software criteria of specifying the verison of adobe (look for and DISPLAY_VERSION LIKE '%10.1.85.3%')
  1. software installed and in the 32-bit label (wizard could do this)
  2. software installed and not in the 32-bit label (wizard can do this)
  3. software not installed and in the 32-bit label (wizard cannot do this)
  4. software not installed not and in the 32-bit label (wizard cannot do this)
note: You wouldn't often use 2 and 4 here -- you would probably just use the 64-bit label instead of not in the 32-bit

/* if specific software is INSTALLED and 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%' and DISPLAY_VERSION LIKE '%10.1.85.3%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME IN ('32-bit')) ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NOT NULL /* software is not missing*/
and ML.ID IS NOT NULL /* label is not missing */

/* if specific software is INSTALLED and NOT 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%' and DISPLAY_VERSION LIKE '%10.1.85.3%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME IN ('32-bit')) ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NOT NULL /* software is not missing*/
and ML.ID IS NULL /* label is missing */

/* if specific software is NOT INSTALLED and 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%' and DISPLAY_VERSION LIKE '%10.1.85.3%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME IN ('32-bit')) ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NULL /* software is missing*/
and ML.ID IS NOT NULL /* label is not missing */

/* if specific software is NOT INSTALLED and NOT 32-bit then label it */
select DISTINCT MACHINE.ID, MACHINE.NAME from MACHINE
LEFT JOIN /**/
(select * from MACHINE_SOFTWARE_JT
JOIN SOFTWARE S ON S.ID=SOFTWARE_ID and
DISPLAY_NAME LIKE '%adobe flash player%' and DISPLAY_VERSION LIKE '%10.1.85.3%') MS
ON MACHINE.ID=MS.MACHINE_ID
LEFT JOIN ( select * from MACHINE_LABEL_JT JOIN LABEL L ON L.ID=LABEL_ID and L.NAME IN ('32-bit')) ML
ON ML.MACHINE_ID=MACHINE.ID
WHERE
MS.ID IS NULL /* software is missing*/
and ML.ID IS NULL /* label is missing */
Answered 01/09/2012 by: GillySpy
Seventh Degree Black Belt

Please log in to comment
0
Thanks for the solutions I am just currently reading to find out what would be best for me. Thanks again.
Answered 01/10/2012 by: mac456
Purple Belt

Please log in to comment
0
RegistryValueEquals(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,PROCESSOR_ARCHITECTURE,x86)

or

RegistryValueEquals(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,PROCESSOR_ARCHITECTURE,AMD64)

Will help you limit installs :)
Answered 03/15/2012 by: ngbrown24
Blue Belt

Please log in to comment
Answer this question or Comment on this question for clarity