Posted on 05-22-2012 02:26 AM
Hi
I am having a few issues trying to manage a site that uses cs5 design standard and design premium.
3 users have premium and the rest have standard.
When entering the licence definitions I run into a problem.
Standard only has photoshop12.0.4, Illustrator and indesign 7.0.4.553
Premium also has photoshop 12.0.4 illustrator and indesign 7.0.4.553
Therefore when licence inventory runs it reports that certain macs run standard and premium.
Is there a way around this? Am I missing something?
Many thanks for any help in advance.
Daniel
Posted on 05-22-2012 03:06 AM
Hi Daniel,
there should be pre defined definitions in the JSS. If not you can download and install the pre set .xml templates from the Jamf site.
Regards
Al
Posted on 05-22-2012 09:25 AM
SWID Tags (Software ID Tags) have gotten very little attention but they have the potential to be a huge boon for managing licensing.
All Adobe CS4 and higher products include SWID Tags. These are simple XML files installed at the same time you install a product such as Design Standard, Design Premium, standalone Photoshop, etc.
They contain information such as a unique number based on your license key (not the key itself), the exact name of the product installed, the version of the product installed, unique creator/developer name and more.
Adobe CS5 and higher products install their SWID Tags in /Library/Application Support/regid.1986-12.com.adobe.
Adobe CS4 products install their SWID Tags in /Users/Shared/Adobe/ISO-19770/.
The file name for Adobe CS5 Design Standard looks like this:
regid.1986-12.com.adobe_DesignSuiteStandard-CS5-Mac-GM-en_US.swidtag
Its contents look like this:
<?xml version="1.0" encoding="utf-8"?>
<swid:software_identification_tag xsi:schemaLocation="http://standards.iso.org/iso/19770/-2/2008/schema.xsd software_identification_tag.xsd"
xmlns:swid="http://standards.iso.org/iso/19770/-2/2008/schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!--Mandatory Identity elements -->
<swid:entitlement_required_indicator>true</swid:entitlement_required_indicator>
<swid:product_title>Adobe Creative Suite 5 Design Standard</swid:product_title>
<swid:product_version>
<swid:name>5.0</swid:name>
<swid:numeric>
<swid:major>5</swid:major>
<swid:minor>0</swid:minor>
<swid:build>0</swid:build>
<swid:review>0</swid:review>
</swid:numeric>
</swid:product_version>
<swid:software_creator>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:software_creator>
<swid:software_licensor>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:software_licensor>
<swid:software_id>
<swid:unique_id>DesignSuiteStandard-CS5-Mac-GM-en_US</swid:unique_id>
<swid:tag_creator_regid>regid.1986-12.com.adobe</swid:tag_creator_regid>
</swid:software_id>
<swid:tag_creator>
<swid:name>Adobe Systems Incorporated</swid:name>
<swid:regid>regid.1986-12.com.adobe</swid:regid>
</swid:tag_creator>
<!--Optional Identity elements -->
<swid:license_linkage>
<swid:activation_status>serialized</swid:activation_status>
<swid:channel_type>UNKNOWN</swid:channel_type>
<swid:customer_type>UNKNOWN</swid:customer_type>
</swid:license_linkage>
<swid:serial_number>954793454764480863505611</swid:serial_number>
</swid:software_identification_tag>
I'm not a sed guru but with a bit of searching on Google I found an example that would help me parse the product name from the information in the file:
sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' /Library/Application Support/regid.1986-12.com.adobe/regid.1986-12.com.adobe_DesignSuiteStandard-CS5-Mac-GM-en_US.swidtag
and return: Adobe Creative Suite 5 Design Standard
Create extension attributes for both CS5 Design Standard and CS5 Design Premium and you'll know the exact products that are installed on your machines. With a bit of creative scripting you could probably get more detailed.
Posted on 05-23-2012 12:27 PM
This actually turned out to be a good exercise for my own use.
The following extension attribute gathers Adobe CS4 or higher products that are installed on a Mac. A "product" may be a suite or an individual application. Even if you've installed a single application from a suite this EA will still report the suite as being the product installed.
The distinction is important when determining which licenses you're actually using compared to which applications may be installed.
#!/bin/sh
# List any CS5 or higher products.
if [ -d /Library/Application Support/regid.1986-12.com.adobe/ ] ; then
# Read each each found file and add its product to a list
for AFILE in /Library/Application Support/regid.1986-12.com.adobe/*
do
PRODUCT=$( sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' "$AFILE" )
PRODUCTLIST="$PRODUCTLIST$PRODUCT"$'
'
done
fi
# List any CS4 products.
if [ -d /Users/Shared/Adobe/ISO-19770/ ] ; then
# Read each found file add its product to the list
for AFILE in /Users/Shared/Adobe/ISO-19770/*
do
PRODUCT=$( sed -n -e 's/.*<sat:product_title>(.*)</sat:product_title>.*/1/p' "$AFILE" )
# Some products use a different version of SWID Tag where "sat:product_title" isn't valid.
# If "sat:product_title" isn't found in the tag then assume "product".
if [ "$PRODUCT" = "" ] ; then
PRODUCT=$( sed -n -e 's/.*<product>(.*)</product>.*/1/p' "$AFILE" )
SUITE=$( sed -n -e 's/.*<part_of_suite>(.*)</part_of_suite>.*/1/p' "$AFILE" )
# Some products such as Acrobat Pro may exist but this older version
# of SWID Tag will only indicate that it was part of a suite or standalone.
# Report if the product is part of a suite.
if [ "$SUITE" = "true" ] ; then
PRODUCT="$PRODUCT is part of an unknown CS4 suite"
fi
fi
PRODUCTLIST="$PRODUCTLIST$PRODUCT"$'
'
done
fi
# Reports the list to the JSS.
echo -n "<result>$PRODUCTLIST</result>"
I've tested with standalone Acrobat 9 and X products, CS4, CS5, CS 5.5 and CS6. Acrobat 9 may be installed as standalone, part of CS4 or as a standalone application licensed with CS5. SWID Tags don't contain enough information to clearly indicate its licensing.
Posted on 05-23-2012 12:59 PM
Ok, so now how are you building your smart folders around this? I was playing with this also, but found that creating accurate smart lists was troublesome due to the similar nomenclature being used in product versions. I've ended up with individual extension attributes using a couple more grep's for each version of suite we have installed here...
Posted on 05-23-2012 02:11 PM
I wrote that EA so that all Adobe products on a machine flow into one field. You could have one EA per product as well such as:
#!/bin/sh
# List any CS5 or higher products.
PRODUCTFILE="/Library/Application Support/regid.1986-12.com.adobe/regid.1986-12.com.adobe_DesignSuiteStandard-CS5-Mac-GM-en_US.swidtag"
if [ -f "$PRODUCTFILE" ] ; then
PRODUCT=$( sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' "$PRODUCTFILE" )
fi
echo -n "<result>$PRODUCT</result>"
This returns: Adobe Creative Suite 5 Design Standard. That should give you the ability to create a smart group for just that one product.
Of course, you could check just for the existence of that file:
#!/bin/sh
PRODUCTFILE="/Library/Application Support/regid.1986-12.com.adobe/regid.1986-12.com.adobe_DesignSuiteStandard-CS5-Mac-GM-en_US.swidtag"
if [ -f "$PRODUCTFILE" ] ; then
INSTALLED="Yes"
else
PRODUCT="No"
fi
echo -n "<result>$INSTALLED</result>"
This returns: Yes or No.
Posted on 05-23-2012 02:28 PM
Forgot to add that I appear to be able to make multiple smart groups based on the first single EA. If I use the "like" operator and specify a product such as Adobe Creative Suite 5 Design Standard then it returns machines with just that product.
Posted on 01-16-2013 09:48 AM
This is great!
Is there any way to determine the license status as trial?
I am trying to spot the Trial Versions. They are adding head count for the audit reports.
I have a sample of how the trial version shows the license status in xml:
<swid:license_linkage>
<swid:activation_status>trial</swid:activation_status>
<swid:channel_type>TRIAL</swid:channel_type>
<swid:customer_type>TRIAL</swid:customer_type>
Posted on 01-17-2013 10:58 AM
This command returns the result "trial"
cat /Library/Application Support/regid.1986-12.com.adobe/regid.1986-12.com.adobe_AfterEffects-CS6-Mac-GM.swidtag | grep wid:activation_status | cut -c 26-30
then I have edited talkingmouse's script and this returns:
Adobe After Effects CS6 trial
Adobe Photoshop CS6 activ
So all had to do is create an Extension Attribute with the script below and then create a smart group looking for like "trial". After that I will have to figure out how to remove the trial software only automagically... BTW see the licensed software marked as "activ"
#!/bin/sh
# List any CS5 or higher products.
if [ -d /Library/Application Support/regid.1986-12.com.adobe/ ] ; then
# Read each each found file and add its product to a list
for AFILE in /Library/Application Support/regid.1986-12.com.adobe/*
do
PRODUCT=$( sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' "$AFILE" )
LICENSE=$( cat "$AFILE" | grep swid:activation_status | cut -c 26-30 )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# List any CS4 products.
if [ -d /Users/Shared/Adobe/ISO-19770/ ] ; then
# Read each found file add its product to the list
for AFILE in /Users/Shared/Adobe/ISO-19770/*
do
PRODUCT=$( sed -n -e 's/.*<sat:product_title>(.*)</sat:product_title>.*/1/p' "$AFILE" )
# Some products use a different version of SWID Tag where "sat:product_title" isn't valid.
# If "sat:product_title" isn't found in the tag then assume "product".
if [ "$PRODUCT" = "" ] ; then
PRODUCT=$( sed -n -e 's/.*<product>(.*)</product>.*/1/p' "$AFILE" )
SUITE=$( sed -n -e 's/.*<part_of_suite>(.*)</part_of_suite>.*/1/p' "$AFILE" )
# Some products such as Acrobat Pro may exist but this older version
# of SWID Tag will only indicate that it was part of a suite or standalone.
# Report if the product is part of a suite.
if [ "$SUITE" = "true" ] ; then
PRODUCT="$PRODUCT is part of an unknown CS4 suite"
fi
fi
LICENSE=$( cat "$AFILE" | grep swid:activation_status | cut -c 26-30 )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# Reports the list to the JSS.
echo -n "<result>$PRODUCTLIST</result>"
Posted on 01-28-2013 11:22 AM
Just wanted to edit the end of the script to correct the CS4 license activation status reading:
Because "swid" tag is not been used in CS4. Instead "sat" tag been used.
The line almost at the end of the script. Should be replaced
LICENSE=$( cat "$AFILE" | grep swid:activation_status | cut -c 26-30 )
with this one
LICENSE=$( cat "$AFILE" | grep sat:activation_status | cut -c 25-29 )
(BTW first line at the beginning of the script is OK, only the second one needs changing)
Here is the corrected script:
#!/bin/sh
# List any CS5 or higher products.
if [ -d /Library/Application Support/regid.1986-12.com.adobe/ ] ; then
# Read each each found file and add its product to a list
for AFILE in /Library/Application Support/regid.1986-12.com.adobe/*
do
PRODUCT=$( sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' "$AFILE" )
LICENSE=$( cat "$AFILE" | grep swid:activation_status | cut -c 26-30 )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# List any CS4 products.
if [ -d /Users/Shared/Adobe/ISO-19770/ ] ; then
# Read each found file add its product to the list
for AFILE in /Users/Shared/Adobe/ISO-19770/*
do
PRODUCT=$( sed -n -e 's/.*<sat:product_title>(.*)</sat:product_title>.*/1/p' "$AFILE" )
# Some products use a different version of SWID Tag where "sat:product_title" isn't valid.
# If "sat:product_title" isn't found in the tag then assume "product".
if [ "$PRODUCT" = "" ] ; then
PRODUCT=$( sed -n -e 's/.*<product>(.*)</product>.*/1/p' "$AFILE" )
SUITE=$( sed -n -e 's/.*<part_of_suite>(.*)</part_of_suite>.*/1/p' "$AFILE" )
# Some products such as Acrobat Pro may exist but this older version
# of SWID Tag will only indicate that it was part of a suite or standalone.
# Report if the product is part of a suite.
if [ "$SUITE" = "true" ] ; then
PRODUCT="$PRODUCT is part of an unknown CS4 suite"
fi
fi
LICENSE=$( cat "$AFILE" | grep sat:activation_status | cut -c 25-29 )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# Reports the list to the JSS.
echo -n "<result>$PRODUCTLIST</result>"
Posted on 01-31-2013 12:01 PM
improved version... gives better license status reading. Why didn't I think that before??
#!/bin/sh
# List any CS5 or higher products.
if [ -d /Library/Application Support/regid.1986-12.com.adobe/ ] ; then
# Read each each found file and add its product to a list
for AFILE in /Library/Application Support/regid.1986-12.com.adobe/*
do
PRODUCT=$( sed -n -e 's/.*<swid:product_title>(.*)</swid:product_title>.*/1/p' "$AFILE" )
LICENSE=$( sed -n -e 's/.*<swid:activation_status>(.*)</swid:activation_status>.*/1/p' "$AFILE" )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# List any CS4 products.
if [ -d /Users/Shared/Adobe/ISO-19770/ ] ; then
# Read each found file add its product to the list
for AFILE in /Users/Shared/Adobe/ISO-19770/*
do
PRODUCT=$( sed -n -e 's/.*<sat:product_title>(.*)</sat:product_title>.*/1/p' "$AFILE" )
# Some products use a different version of SWID Tag where "sat:product_title" isn't valid.
# If "sat:product_title" isn't found in the tag then assume "product".
if [ "$PRODUCT" = "" ] ; then
PRODUCT=$( sed -n -e 's/.*<product>(.*)</product>.*/1/p' "$AFILE" )
SUITE=$( sed -n -e 's/.*<part_of_suite>(.*)</part_of_suite>.*/1/p' "$AFILE" )
# Some products such as Acrobat Pro may exist but this older version
# of SWID Tag will only indicate that it was part of a suite or standalone.
# Report if the product is part of a suite.
if [ "$SUITE" = "true" ] ; then
PRODUCT="$PRODUCT is part of an unknown CS4 suite"
fi
fi
LICENSE=$( sed -n -e 's/.*<sat:activation_status>(.*)</sat:activation_status>.*/1/p' "$AFILE" )
PRODUCTLIST="$PRODUCTLIST$PRODUCT $LICENSE"$'
'
done
fi
# Reports the list to the JSS.
echo -n "<result>$PRODUCTLIST</result>"
Posted on 01-20-2015 11:26 AM
thank you for this! It was something our Software Tracking team was looking for. I do have a couple weird entries though..
Acrobat Pro is part of an unknown CS4 suite Acrobat Pro is part of an unknown CS4 suite Creative Suite 4 Design Premium unlicensed Creative Suite 4 Design Premium unlicensed
and
Acrobat Pro
And is there a difference between "activated" and "serialized"?