InstallShield apps SCCM deployment DCOM Issue workaround side effects?
I discovered the hard way that pushing out a script via SCCM to update an InstallShield app can go horribly wrong. It's the DCOM RunAs issue (error 1603) which I've discovered is well covered here. I can write a script to hunt for all AppIDs whose names are like "%InstallShield%" and remove the associated RunAs value to set the context to Launching User but is it safe for me to leave it like that or do I need to be backing up these keys and restoring the original settings after the app has been updated? What might be the side effects of leaving them deleted? Thanks for any thoughts.
I've attached some PowerShell for exploring the current settings that may be of interest to anyone who stumbles across this page:
if ((Test-Path -Path "HKCR:") -eq $false) {
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
}
Get-WmiObject -Query "SELECT Name,AppID FROM Win32_DCOMApplication WHERE Name LIKE '%InstallShield%'" | ForEach-Object {
$IS_AppID = $_.AppID
# Check key exists
if (Test-Path -Path "HKCR:\AppID\$IS_AppID") {
# Check value exists
if ([bool](Get-ItemProperty -Path "HKCR:\AppID\$IS_AppID" -Name RunAs -ErrorAction SilentlyContinue)) {
$IS_RunAs = (Get-ItemProperty -Path "HKCR:\AppID\$IS_AppID" -Name RunAs | Select-Object -ExpandProperty RunAs)
} else {
# Absent value = The Launching User
$IS_RunAs = "Launching User"
}
} else {
$IS_RunAs = "<no AppID key>"
}
New-Object -TypeName PSObject -Property @{ "DCOM Name"=$_.Name; "AppID" = $IS_AppID; "RunAs" = $IS_RunAs }
} | Select-Object "DCOM Name", AppID, RunAs | Format-Table -AutoSize
Answers (1)
Don't change the ID: delete the 'RunAs' value entirely.
As to side effects, in over [I've forgotten] years of doing this stuff, I have never seen any ill effect from that deletion. Indeed, I think I'm right in remembering that [whoever owned IS at the time] acknowledged it as a bug and issued a patched installer.
Comments:
-
Thanks, VBScab :) - cantoris 10 years ago