Monday, May 25, 2009

Deploy Adobe Acrobat Updates

See an update on deploying patches to x64 machines
http://sms-hints-tricks.blogspot.com/2010/07/adobe-updates-on-x64.html

Every couple of months Adobe will release a patch for their products. If you're like us you might be running several versions of Adobe Acrobat (7,8,9) at the same time.

Depending on how you want to upgrade these software titles determines your approach. At one time we had a collection for each update. As the computer was patched it was inventoried and moved to the next collection. On some machines we might send down a batch file that would force all the patches back on in the hopes that the software knew what had been installed and would skip the older version. Here is the latest way we push down the patch. We have a single collection for Adobe 8,9 Patches. It looks for machines that have adobe 8 but are not at the latest patch level. Now you simply run this vbs script on the collection. The script determines the patch level and applies the appropriate patches.

------Adobe 8--------
Dim objShell, RegLocate
Set objShell = WScript.CreateObject("WScript.Shell")
On error resume next

Dim sngVersion

'''' Adobe 8.0.0
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.0.0" then
objShell.run "msiexec /p AcrobatUpd810_efgj_incr.msp /qb /norestart", 0, True

end if


'''' Adobe 8.1.0
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.0" then
objShell.run "msiexec /p AcrobatUpd811_all.msp /qb /norestart", 0, True

end if


'''' Adobe 8.1.1
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.1" then
objShell.run "msiexec /p 8.1.2 patch.msp /qb /norestart", 0, True

end if


'''' Adobe 8.1.2
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.2" then
objShell.run "msiexec /p AcrobatUpd813_all_incr.msp /qb /norestart", 0, True

end if


'''' Adobe 8.1.3 allows for jumps in patches
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.3" then
objShell.run "msiexec /p Adobe_Pro_8.1.6.msp /qb /norestart", 0, True

end if

'''' Adobe 8.1.4 allows for jumps in patches
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.4" then
objShell.run "msiexec /p Adobe_Pro_8.1.6.msp /qb /norestart", 0, True

end if


'''' Adobe 8.1.5 allows for jumps in patches
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.5" then
objShell.run "msiexec /p Adobe_Pro_8.1.6.msp /qb /norestart", 0, True

end if

'''' Adobe 8.1.7
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.6" then
objShell.run "msiexec /p AcrobatUpd817_all_incr.msp /qb /norestart", 0, True

end if

'''' Adobe 8.2
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000003}\DisplayVersion")
if sngVersion="8.1.7" then
objShell.run "msiexec /p AcrobatUpd820_all_incr.msp /qb /norestart", 0, True

end if
-------------------
Adobe Reader 8 updates collection
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Adobe Acrobat 8%" and SMS_G_System_ADD_REMOVE_PROGRAMS.Version != "8.2.0"






-------------------------------------------------


-----------Adobe Pro 9 updates--------------------------------------
Dim objShell, RegLocate
Set objShell = WScript.CreateObject("WScript.Shell")
On error resume next

Dim sngVersion

'''' Adobe 9.0.0
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.0.0" then
objShell.run "msiexec /p AcroPro-std9.1.msp /qb /norestart", 0, True

end if


'''' Adobe 9.1.0
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.1.0" then
objShell.run "msiexec /p Adobe_9.1.2_pro.msp /qb /norestart", 0, True

end if


'''' Adobe 9.1.1
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.1.1" then
objShell.run "msiexec /p Adobe_9.1.2_pro.msp /qb /norestart", 0, True

end if

'''' Adobe 9.1.3
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.1.2" then
objShell.run "msiexec /p AcrobatUpd913_all_incr.msp /qb /norestart", 0, True

end if

'''' Adobe 9.2
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.1.3" then
objShell.run "msiexec /p AcrobatUpd920_all_incr.msp /qb /norestart", 0, True

end if

'''' Adobe 9.2
sngVersion = objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-1033-0000-7760-000000000004}\DisplayVersion")
if sngVersion="9.2.0" then
objShell.run "msiexec /p AcrobatUpd930_all_incr.msp /qb /norestart", 0, True

end if


WScript.Quit
----------------------------------------------------



Adobe Reader 9 collection
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "Adobe Reader 9%" and SMS_G_System_ADD_REMOVE_PROGRAMS.Version != "9.2.0"

Friday, May 22, 2009

What's new with Microsoft?

Here is some information from the
System Center and Virtualization Readiness Newsletter: May 2009

On-demand Webcasts:

Client Management Bootcamp to launch July 2009

"To help our partners leverage these opportunities, the BG team has developed the System Center Client Management Bootcamp. This training will teach partners how to effectively position, sell and deploy the System Center Client Management Suite to address common customer challenges around client management." Topics include:

· Client virtualization
· Optimized client architecture, planning and deployment
· Deploying and optimizing Windows 7 and Office 14
· How to Deliver a Client Management Suite Proof of Concept
· Service Manager 1-day deep dive

Sunday, May 10, 2009

Inventory Certificates

Ok here is the link to the code to inventory certificates.

http://www.sccm-tools.com/tools/vbscript/vbscript-certificates.html

Inventory Certificates

Recently we found some Native Mode computers that had expired computer certificates. When this happens the client becomes unhealth and thus stops responding. Until the cert is renewed it will just sit in a dead state. Well instead of working "reactively" I want to be "proactive." Now I have found several differnet reasons for certificate renewal errors which I have document one or more here in my blog. With my latest work with Sherry Kissinger, another MVP in the ConfigMgr area we were able to create a VBscript that would pull the cert data and inject into WMI so it can be pulled at inventory time. Since the expiration date (and count down in days) is pulled a report can be run that will tell you if a computer is getting ready to expire or has already occured.

The only difficult issue is that it relies on Capicom, which some admins don't use. It will attempt to register the dlls so it can inventory. I haven't found a better way to do this. .NET offers some but again you are dependent on an installtion of .NET and some other assemblies. Well hopefully I can have some others confirm this works correctly in their test enviroments. I will then post the code here, link from the original post in the Technet Forums and move it into production.

Sunday, May 3, 2009

MMS 2009 Presenation

So you either went to the session with Greg and me or you have watched it the recording.
I have a tools website that I slow been working on
www.sccm-tools.com


Here are some of the tools that I personally have created:
http://sms-hints-tricks.blogspot.com/2008/06/right-click-tool-status-messages.html
http://www.sccm-tools.com/tools/rightclick/rightclick-clientactions.html
http://www.sccm-tools.com/tools/rightclick/rightclick-Collectionaddcomputers.html

a good way to find tools online is to search with these parameters
"sccm tools"
"right click tools"
"Console extenstions"