chaoticyeshua Posted November 27, 2012 Share Posted November 27, 2012 Hello, I compiled a script on a 64-bit computer, and the script is not working properly on 32-bit computers. Here's what I'm trying to do... We are, as a university, switching from Symantec to Microsoft Forefront Endpoint Protection. However, on some machines, Symantec is failing to remove through the use of our SCCM server. Instead, I am using psexec to run this script which finds the GUID of Symantec, initiates an msiexec uninstall, and then installs Forefront. If run on a 64-bit test machine, it seems to work flawlessly. However, every 32-bit machine I've pushed the script to does not remove Symantec. I'm assuming this is because it isn't reading the registry for the GUID properly. Any thoughts? I'm spinning up a 32-bit Windows 7 machine right now for some testing of my own. But if anyone has any input, I'd really appreciate it. ; Find the GUID for Symantec $index = 1 $GUID = "" If @OSArch="X86" Then $keyroot = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Else $keyroot = "HKLM64\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" EndIf $subkey = "***START***"; we use this because "" will make our While loop exit While $subkey <> "" $subkey = RegEnumKey($keyroot, $index) If StringInStr(RegRead($keyroot & "\" & $subkey, "DisplayName"), _ "Symantec") Then $GUID = $subkey ; Record the GUID $subkey = "" ; Force the While to exit EndIf $index = $index + 1 WEnd If $GUID <> "" Then ShellExecuteWait('msiexec',"/qn /X" & $GUID & " /norestart") Sleep(30000) RunWait("\\server\share\Forefront Protection\FEPInstall(" & @OSArch & ").exe /q /s") EndIf Link to comment Share on other sites More sharing options...
jdelaney Posted November 27, 2012 Share Posted November 27, 2012 (edited) your root's aren't correct Switch @OSArch Case "X64" Global $gsRegistryUninstall = "HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall" Case "X86" Global $gsRegistryUninstall = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall" Case Else MsgBox ( 1,1, "Unknown @OSArch type=[" & @OSArch & "]") EndSwitch i use the above...not sure of other configs...but, maybe you do install there, just posting what works for me Edited November 27, 2012 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
chaoticyeshua Posted November 27, 2012 Author Share Posted November 27, 2012 Thanks, that seems to have fixed it even though the root key for x86 was the same and that's the architecture I'm having problems with. Not sure why, but it worked! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now