CA Client Automation

  • 1.  Using AM job to check SD agent

    Posted Dec 09, 2017 12:11 PM

    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




  • 2.  Re: Using AM job to check SD agent

    Posted Dec 16, 2017 01:29 PM

    v2 scripting.  Added RCHOST check, install state check per TEC537492, & cleanup output of asset job text.