I have run into a problem on occasion where the Windows SDAgent becomes disabled. This can present a problem as SD jobs will not run when SDAgent disabled.
My theory is this occurs because Deploywrapper.exe used in agent upgrades will disable SDAGENT when running. If the agent upgrade fails or machine reboots during an agent upgrade SDAGENT can remain disabled.
Wanted to share an Asset Job I wrote to check for this condition, agents not installed (TEC537492), and resolve. Works well when AMAGENT is healthy. If problems were resolved by this job creating log files, which then detecting existence via software inventory.
Plan to add some functionality for similar health check for other agent components as well. If need to change AMAGENT status may need to implement something similar in the Health Agent
:REM M. Treichler 12/2017 script attempts to
:REM check for CAF SDAGENT disabled and enable with output
:REM check for CAF RCHOST disabled and enable with output
:REM check for CAF SDAGENT installed and mark installed enable with output
:REM check for CAF RCHOST installed and mark installed enable with output
:REM CA TEC537492
SETLOCAL EnableDelayedExpansion
SET SDAGENT=OK
SET RCHOST=OK
SET SDAGENT-GUID={62ADA55C-1B98-431F-8618-CDF3CE4CFEEC}
SET RCHOST-GUID={84288555-A79E-4ABD-BA53-219C4D2CA20B}
:REM Determine CAF agent PATH for S.LOG and C.LOG
for /F "delims=" %%i IN ('ccnfcmda -cmd GetParameterValue -ps itrm/common -pn configdata_location') DO set AGENTPATH=%%i\Agent\units\00000001\uam
SET AJStatus="%AGENTPATH%\S.LOG"
SET AJText= "%AGENTPATH%\C.LOG"
:REM Checking if existing Deploywrapper.exe upgrade is running
TASKLIST | FIND /i "Deploywrapper.exe"
IF %ERRORLEVEL%==0 (
ECHO ERROR > %AJStatus%
ECHO Deploywrapper.exe detected running by 'Health check CA DSM CAF Asset Job'> %AJTEXT%
EXIT 0
)
:REM Look for SDAGENT disabled and enable with log.
CAF STATUS SDAGENT | find "disabled"
IF %ERRORLEVEL%==0 (
CAF ENABLE SDAGENT > "%PROGRAMFILES%\CA\AJ-CAF-HEALTH-SDAGENT-FIXED.LOG"
SET SDAGENT=NE
)
CAF STATUS RCHOST | find "disabled"
IF %ERRORLEVEL%==0 (
CAF ENABLE RCHOST > "%PROGRAMFILES%\CA\AJ-CAF-HEALTH-RCHOST-FIXED.LOG"
SET RCHOST=NE
)
:REM Look for SDAGENT not installed, verify installed based on GUID, and mark installed.
CAF STATUS SDAGENT | find "not installed"
IF %ERRORLEVEL%==0 (
REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%SDAGENT-GUID% >NUL
IF !ERRORLEVEL!==0 (
CAF SETPROP SDAGENT installed 1 >> "%PROGRAMFILES%\CA\AJ-CAF-HEALTH-SDAGENT-FIXED.LOG"
SET SDAGENT=NI
)
)
:REM Look for RCHOST not installed, verify installed based on GUID, and mark installed.
CAF STATUS RCHOST | find "not installed"
IF %ERRORLEVEL%==0 (
REG QUERY HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%RCHOST-GUID% >NUL
IF !ERRORLEVEL!==0 (
CAF SETPROP RCHOST installed 1 >> "%PROGRAMFILES%\CA\AJ-CAF-HEALTH-RCHOST-FIXED.LOG"
SET RCHOST=NI
)
)
CAF START
ECHO OK > %AJStatus%
ECHO 'Health check CA DSM CAF Asset Job' status: SDAGENT:%SDAGENT% RCHOST:%RCHOST% > %AJTEXT