How to differentiate between Adobe Acrobat Standard vs Professional in SCCM - sql

i'm currently in the middle of a software license review for my organization, and I am attempting to document how many instances of paid software we have installed on end-user machines.
For the example I used in the title (with Adobe Acrobat Standard vs Professional) where there doesn't seem to be any difference in the installation folder/exe, how would you suggest demarcating this within SCCM to pull the correct results?

I don't know which version of these two products you use because on our systems they have quite different installation paths (%ProgramFiles%\adobe reader vs acrobat) as well as file names (AcroRd32.exe vs Acrobat.exe).
However another method to differentiate would be the "File Description" of the executable. This or the "Product Name" should be different in any case. This is something you would see in any file inventory.
Another approach would be to rely on the data the sccm gathers regarding the entry of a software in the Add/Remove programs section of the computer. This is basically a registry entry in HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall and will most probably also show a different name for those softwares.
As you included the SQL tag in the questions I assume you want to query the database for this info. In that case a view for basic file info would be:
v_GS_SoftwareFile one for the Add/Remove Programs would be v_GS_ADD_REMOVE_PROGRAMS for example.

Related

How to find Windows Script Host languages installed

How do I find out what WSH (Active Scripting) languages are installed on a machine?
I know that JScript and VBScript are installed by default, but how do I find out if, for example, Python is installed for WSH?
EDIT
Turns out that regedit comes handy here. If you search for all OLEScript keys under Computer\HKEY_CLASSES_ROOT\CLSID, you will find their parent class IDs.
You can then identify the DLLs that implement the installed scripting engines (e.g. jscript.dll, vbscript.dll) by looking at the corresponding InprocServer32 keys under each class ID.
I suspect that's what TC (described below) is doing.
ORIGINAL
I initially (see edit above) used Take Command shell replacement (thankfully, free 30 day trial) which has a script command that lists the installed scripting engines (I was surprised to find e.g. XML to be considered a scripting engine).
Not quite what I had in mind (requires a proprietary, 3rd party payware to be installed; quite pricey at $100) but it did allow me to answer my original question: what WSH scripting engines are installed.

Convert Microsoft product's version (like "Outlook 2003") to build number?

In a related security.stackexchange.com question, I asked for ways to find security advisories for specific software. I'd like to automate this process, but I found a mismatch between my database of Microsoft versions that includes build numbers (like 9.00.3027.00) and actual market version names (like - let's say - 2013). How could I translate those in either way (build numbers to version names or the other way round)? Is there a library in any language that would let me do that for Microsoft products (and most preferably other vendors?)

is there a way to automate/script (eg perl) a tagged pdf file to see if it's pdf/ua compliant?

We have some tools that generate PDF. We want to automate some testing to make sure the generated PDFs are tagged (PDF/UA) and that the tags are valid.
There are a lot of interactive checkers (acrobat, PDF Accessibility Checker (PAC), etc). They generate reports of things that pass/fail in the PDF based on the matterhorn protocol. I'd like to generate these similar reports but automated.
I recently found a perl module, PDF::API2, that might be promising but I only wrote a few simple tests with perl about 15 years ago. Has anyone used that module for tagged pdf checking or have you done this with a different scripting language?
The technology used in Adobe Acrobat (in its Preflight component) is developed by callas software (caution: I'm heavily affiliated with this company). callas also develops the same technology under the name pdfaPilot, which exists in a manual version but also in command-line and SDK versions that fully automate the process.
But!
As stated by Max Wyss in his comment on your question already, there are two parts to PDF/UA checking. Some of the specification's rules can be tested automatically by software, but a lot of them cannot.
To give one example, it is possible to verify programmatically that all text in a PDF document is tagged with a language. It's a whole other ballgame to check whether those language tags are actually correct.
pdfaPilot Desktop actually allows you to automatically check what is possible, and then allows you to convert the PDF/UA file into visually tagged HTML which makes it much easier to verify that meaning and structure of the text are correct.
In other words, yes, such technology exists, but it will never be 100% complete.

how to create a localized windows installer

How do I create a localized windows installer package for my WPF application, it has support for 6 languages and I want to have EULA document being localized when user installs the application
I see you tagged Wix and InstallShield, so maybe you are open to try other tools too. Advanced Installer (disclaimer, I work on its development) has in the Professional edition support for multilingual packages.
You just select the languages desired from Translations page, then go to Dialogs page and add a new predefined dialog, select "LicenseAgreementDlg". Advanced Installer will see that you have multiple languages in the package so it will ask you select the EULA file for each language. In roughly 10 minutes you will get your first installer up and running.
I am not quite up to speed on WIX and localization (language support). This online tutorial is a good starting point for you: http://wix.tramontana.co.hu/tutorial/user-interface/do-you-speak-english . Just read through the different User Interface sections.
I don't know which bundling you intend, but in my experience a multi-language setup is less desirable than compiling one MSI file per language. This is easier and faster to compile and work with (very important for large packages), more flexible if you need to bug fix something in a single language, allows you to add new languages easily without full UAT for all languages, and you can deliver the English version as soon as the code is done without waiting several days or weeks for localized files (if any are required).
If you plan to use Windows Installer XML, you can check my answer here. Note that the method is undocumented and not supported by Microsoft, however MS uses it itself and it is working very well.
Just provide a different file for every language transform to the WixVariable WixUILicenseRtf.

Software/Platform to Share Specs

What are the software/ Wiki you use to write and share your specs about the developers, testers and management?
Do you use Wiki system, and if so, what Wiki software you use?
Or do you use Sharepoint to manage and version the specs? One problem with SharePoint 2003 as specs platform is that it's very hard to collaborate among different people.
For backward compatibility sake, I would also like to have the platform able to import Microsoft Word seamlessly. And it would certainly help if the interface is similar to Microsoft Word.
Any idea?
I've used Confluence at a number of places, it's a pretty powerful wiki and very good for creating specifications that can be shared amongst various parties. See:
http://www.atlassian.com/software/confluence/
There's some more information here on the advantages of using Confluence:
https://stackoverflow.com/questions/170352/confluence-experiences
EDIT: I've updated this to deal with the Microsoft Word import feature you mentioned. Confluence supports this through the Office Connector here:
http://www.atlassian.com/software/confluence/plugins/office-connector.jsp
There's also a Sharepoint connector:
http://www.atlassian.com/software/confluence/plugins/sharepoint-connector.jsp
plus a whole bunch of plugins:
http://www.atlassian.com/software/confluence/plugins/sharepoint-connector.jsp
Some of these are user contributed also. I can't recommend Confluence enough as a commercial wiki.
I've also used JSPWiki, which is open source. it's ok but not as good as confluence, see:
http://www.jspwiki.org/
You could try Google docs - I have successfully used this in the past. It supports import / export to MS Word, and it has great support for multiple user - see http://www.brighthub.com/internet/google/articles/8236.aspx.
It supports versioning, allows you to chat with other people who are currently working on the document, and shows you a list of all the changes others have made to the document (without needing to close / reopen the document).
If you want corporate support, Google also provides that - see Google Apps for business.
We use SharePoint -- it's not ideal, but it does a decent job. If I were you, I would seriously look at getting off SharePoint 2003 and on to MOSS (SharePoint 2007). It's not perfect, but it's substantially better. Here's a little bit on using MOSS as a wiki. I think in general wiki's are a good tool for getting people up to speed on your system. We used to pass around "getting started documents" and now we have all that type of stuff in our developer portal.
Per John's comment, I looked up this feature comparison. I have to go back and look at what features I'm using that are not in WSS -- I might be paying for licenses I don't need! :)
We use email. I know it isn't elaborate, but it is easy to use. Everyone has it installed and there are no licensing issues. All spec changes are sent to an super set email distro indicating the updates and the location on the network share where the spec can be found.
We use Alfresco, in its Community version, from both its Share and Explorer web interfaces.
Quite useful, with a document library, wiki, forum and calendar.
We curently host about 1.8 Go consisting mainly in docs, versionned and sometimes automatically converted to PDF (by creating an automatic content rule).
FTP, WebDav and network share are also used to access to the same repository.
You could take a look at Microsoft Groove - the collaboration software that Microsoft bought a few years back.
It's bundled free with premium versions of Microsoft Office.
You can customize the workspace with discussion boards and can fairly seamlessly store collaboratively-edited Office documents.
We use MediaWiki for dos & specs. Wiki definitely wins anything like Microsoft Word or SharePoint - it allows you to develop a documentation in "first refer, then describe" = "divide and rule" way. Perfect for developers - they used to think the same way. The process of developing a documentation is almost ideal: you start from TOC and drill down until you write the document for every link you put earlier.
MediaWiki is quite customizable - there are lots of extensions there. The most necessary ones are:
Source code highlighter - CSO_Source
Our own templates integrating wiki with class reference.
Others are InterWiki, FileProtocolLinks, YouTube (we use customized version of it to display HD video), ReCaptcha, SpecialDeleteOldRevisions, Maintenance.
Some integration examples are here.
And we use Google issue tracker to track the issues. Its main advantages:
Imput usability: the process of adding\changing the issue is really convenient there. Earlier we tried Track Studio - the same actions require 2-3 times more time there, so it died fast simply because most of us hated to use it.
Customizable grids. See the examples. Really helpful.
Atom\RSS support. So everyone knows what's going on.
There is a Gurtle tool integrating it with TortoiseSVN. Really helpful.
Its main disadvantage is that it can't be closed from the public access. This makes it simply unusable in many cases.
If you want a UI similar to Word, why not use Word with SharePoint 2007? You're on 2003 so the experience is there. Upgrade to SharePoint 2007 and you can have the collaboration, Word features, document sharing, and so on.
This is the kind of thing Microsoft wants people to use Office for, so there's a ton of doco out there about how to configure your SharePoint and Office environment to support collaboration.
There is something that Google do in this direction and it looks really cool: wave.google.com. It would be a great step in collaboration and worth to wait it.
Here we use Google Docs it makes the documents available to everyone write or read only, public or private among people that have or not Google accounts, it also can import Word docs, not to mention that it runs directly into the browser so it has high availability with zero cost and zero setup, also its computer/OS agnostic, we have a nice experience with it.
Also perhaps you should take a look at Basecamp or Backpack at 37Signals, any of then might also fit your bill.
We use DocBook for all of our specifications (and other customer-facing documentation). DocBook is an XML format that lets you easily generate documents in just about any format, including PDF, which is how we distribute things to clients to get them signed off. We can divide a document into files (by section) and commit everything to our source control system (Subversion). Because it is all XML (i.e. text-based), Subversion's automatic merging and conflict resolution works great if two people work on the same file. We have a set of stylesheets that all of our documents use, so all documents share the exact same style/format, with no extra work on our part.
And if you don't like editing XML files directly, there are GUI front-ends that provide a reasonably WYSIWYG-like experience. I believe that most people in my office use XMLMind. Still, we happen to all be technical people so if we had to write XML directly it wouldn't be an issue.
As a sidenote, we also put out release notes. We have some XSLT that lets us write documents like this:
<bugs>
<bug id="1234" component="web">JavaScript error when clicking the Kick Me button</bug>
</bugs>
We then have a script that runs through our Subversion repository doing an svn log from the previous release tag to the current release tag, and some Bugzilla integration to automatically generate release notes on-the-fly.
(also, for most internal-only documentation, we use MediaWiki, which is also a great way to collaborate.)
We use OnTime. It was originally only used for defect tracking, but we've started using it to track features as well. These can be used to document the feature as it evolves during development. Features can be grouped together into sprints or releases, and time can be tracked against each feature. If you are using SCRUM, you can also plot burn-down charts for each sprint. It also has wiki functionality.