"If" Statement in Office 365 (O365) Causes Action to Hang and Eventually Fail

The BigFix “O365 Version 16.0.xxx… Available” Fixlets do not work correctly in my environment. Once the action script starts running, the action hangs for up to 3 days and eventually fails. We are downloading office directly from the CDN.

The good news is, I have tracked the problem to the following “if” statement in the action script:

“if {(value of setting “_BESClient_Office365_Update_Source” of client as lowercase =“client_local_cache”) | False}”

My workaround is to remove that statement and corresponding “endif” located a few lines below. I can also close the loop and add an “endif” statement right after the “if” statement to get the script working (see below).

“if {(value of setting “_BESClient_Office365_Update_Source” of client as lowercase =“client_local_cache”) | False}
endif”

Because of this problem, I have to update the BigFix O365 Fixlet every month and I don’t think that is a proper process. Is this a bug in the action script? Any advice would be much appreciated. Has anyone experienced this or similar issue?

Here is the original action script (see below).

continue if {not exists running application (“winword.exe”; “excel.exe”; “powerpnt.exe”; “onenote.exe”; “outlook.exe”; “mspub.exe”; “msaccess.exe”; “lync.exe”)}

parameter “SourceFolder”="{pathname of parent folder of regapp “besclient.exe” as string & “\Office365AdvPatch”}"

if {(value of setting “_BESClient_Office365_Update_Source” of client as lowercase =“client_local_cache”) | False}

if {exists folder (parameter “SourceFolder”)}
folder delete "{parameter “SourceFolder”}"
endif

folder create “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215”

if{exists value “Platform” whose (it as string as lowercase = “x86”) of keys “HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration” of native registry}

prefetch v32_16.0.8431.2215.cab sha1:1c01f609a1b2aa2addc7d007f394582b9a622020 size:17031 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/v32_16.0.8431.2215.cab sha256:332f8d4dd586f99443ac4d057869b0c04948fca9d784b7505213d6ba29a0745b
move “__Download\v32_16.0.8431.2215.cab” “{parameter “SourceFolder”}\Office\Data\v32_16.0.8431.2215.cab”

prefetch v32.cab sha1:1c01f609a1b2aa2addc7d007f394582b9a622020 size:17031 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/v32_16.0.8431.2215.cab sha256:332f8d4dd586f99443ac4d057869b0c04948fca9d784b7505213d6ba29a0745b
move “__Download\v32.cab” “{parameter “SourceFolder”}\Office\Data\v32.cab”

prefetch i320.cab sha1:5474759519b4ab54376ba352f045476d4278ec29 size:25052780 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/i320.cab sha256:f8a0a5ac3e774c952a7a9a74fb2dbce8a1667d3d64f1e58d5e63748a94dfb674
move “__Download\i320.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\i320.cab”

prefetch s320.cab sha1:a929a2f164f704d0c52055ca00c3fd8d3d9ef175 size:3585080 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/s320.cab sha256:be40442edc95d7dc22e84226bac0d41a114bc1f74c75361bc10157f0b3f0fdc5
move “__Download\s320.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\s320.cab”

prefetch stream.x86.x-none.dat sha1:24dcb9e263ea68357b852983ee9eaa5b0f1746a2 size:1413415987 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/stream.x86.x-none.dat sha256:669b87be3e591eed324d16be1cdd80c74a999b9f9e4a922ae3df7c6f2c2f0944
move “__Download\stream.x86.x-none.dat” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\stream.x86.x-none.dat”

prefetch i321033.cab sha1:ae3645f13c46d51bd6412738eecf79ec4eb2320d size:667133 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/i321033.cab sha256:4617e32d418cbb930dfbff5fd32d51a1fd926d2e8692f821d3850add9005adf2
move “__Download\i321033.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\i321033.cab”

prefetch s321033.cab sha1:04d9a3df53dfcdf07a5b951705d3a1fcc9a2a413 size:720722 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/s321033.cab sha256:7ae192cb22a4b61237e0de69e67ab367ee331fb7ab7b8bf3a8e953009371f798
move “__Download\s321033.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\s321033.cab”

prefetch stream.x86.en-us.dat sha1:3c8eab903cd686cf5c196757c93b05b73799b714 size:279939449 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/stream.x86.en-us.dat sha256:d4aeaa95395cd1e57c80e68de0ee0548dcc41e8184aab5db42cedd978284b7bd
move “__Download\stream.x86.en-us.dat” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\stream.x86.en-us.dat”

else

prefetch v64_16.0.8431.2215.cab sha1:a6f36aa3bdf4ff39a8faf306b4734afc98a01cae size:17031 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/v64_16.0.8431.2215.cab sha256:0e340e22c5f6b009e237b70fd36cd87e4b76ef6856b0a492ffbd8ff74775f874
move “__Download\v64_16.0.8431.2215.cab” “{parameter “SourceFolder”}\Office\Data\v64_16.0.8431.2215.cab”

prefetch v64.cab sha1:a6f36aa3bdf4ff39a8faf306b4734afc98a01cae size:17031 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/v64_16.0.8431.2215.cab sha256:0e340e22c5f6b009e237b70fd36cd87e4b76ef6856b0a492ffbd8ff74775f874
move “__Download\v64.cab” “{parameter “SourceFolder”}\Office\Data\v64.cab”

prefetch s640.cab sha1:553f798925f513e1f7bb2338179c6b59f6ac4832 size:3726209 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/s640.cab sha256:59fad1cba47b83e226f13a788d0b0cd0bf18bf7c3a367502885e4ce330f66c24
move “__Download\s640.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\s640.cab”

prefetch stream.x64.x-none.dat sha1:f682ce869d3ec75fa960f26a42108fb82294f51d size:1685369176 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/stream.x64.x-none.dat sha256:64c2e1afedc4a1ebe6895d3678b8256f075d61da1241a542e9db1a16030cdfa9
move “__Download\stream.x64.x-none.dat” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\stream.x64.x-none.dat”

prefetch s641033.cab sha1:71bb1cfc0e913e9b4ce2d33b0ca54c617450e597 size:711568 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/s641033.cab sha256:1cf86cd13d57a4a0b14a98f2cdeebff134eccae2fd9217af0f5be691709d4d68
move “__Download\s641033.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\s641033.cab”

prefetch stream.x64.en-us.dat sha1:7ea2bfdc29ee8ef81fd4a5896762636f3cd95295 size:283084061 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/stream.x64.en-us.dat sha256:075dfb95da3b6779c1423e266a9ded5432295d5ecbe7ec2b5e9d63def1332561
move “__Download\stream.x64.en-us.dat” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\stream.x64.en-us.dat”

endif

prefetch i640.cab sha1:736ff1770e42ff9fae7dfa5ea13f54ce636dd695 size:32515475 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/i640.cab sha256:4bbeb6c2e7ef106a5f2ec6c7a6a9e1aba76806e7d4eb35e2d33eb6a71565e67c
move “__Download\i640.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\i640.cab”

prefetch i641033.cab sha1:d0c4d92047276c57a879650fa940a54e03710633 size:706426 http://officecdn.microsoft.com/pr/7ffbc6bf-bc32-4f92-8982-f9dd17fd3114/office/data/16.0.8431.2215/i641033.cab sha256:4fc53de079da36172e583d62fc8e9ea7c80711f39028ea0b50e9657c1572e80e
move “__Download\i641033.cab” “{parameter “SourceFolder”}\Office\Data\16.0.8431.2215\i641033.cab”

if {x64 of operating system}
regset64 “[HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\officeupdate]” “UpdatePath”="{escape of parameter “SourceFolder”}“
else
regset”[HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\officeupdate]" “UpdatePath”="{escape of parameter “SourceFolder”}"
endif

endif

waithidden {"%22" & value “ClientFolder” of key “HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration” of native registry as string & “\OfficeC2RClient.exe%22 /update user updatepromptuser=False displaylevel=False updatetoversion=16.0.8431.2215”}

pause while {Not exists value “DisplayVersion” whose (it as string as version = “16.0.8431.2215” ) of keys whose (value “DisplayName” of it as string as lowercase contains “365”) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of native registry}

if {(value of setting “_BESClient_Office365_Update_Source” of client as lowercase =“client_local_cache”) | False}

// After installation Cleanup
folder delete “{parameter “SourceFolder”}”

if {x64 of operating system}
regdelete64 “[HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\officeupdate]” "UpdatePath"
else
regdelete “[HKEY_LOCAL_MACHINE\software\policies\microsoft\office\16.0\common\officeupdate]” "UpdatePath"
endif

endif

I wanted to follow up and close the loop on this one. First, my original hypothesis was wrong. the reason why this script would hang was because due to the following pause while command - “pause while {Not exists value “DisplayVersion” whose (it as string as version = “16.0.8431.2215” ) of keys whose (value “DisplayName” of it as string as lowercase contains “365”) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of native registry}”. In most cases the machines update shortly after the command is run. In other cases the script can be stuck on pause for up to a week. The solution to this was incorporating a timeout setting after the pause. That way the computer is not paused indefinitely. I learned this method from other BigFix champions “Pause while”-command results in failed action in this forum. Here is the script with a timeout. - parameter “start” = “{now}”

pause while {(Not exists value “DisplayVersion” whose (it as string as version = "16.0.xxxxxxxxxxxx of keys whose (value “DisplayName” of it as string as lowercase contains “365”) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of native registry) AND (now - ((parameter “start” of action) as time))< 30*minute}

I hope this is helpful to someone.