AAC::Clean OldActions
0 Votes |
Description
This Fixlet prompts for a password that will be required to access the REST API used to run a query and delete expired actions
The password is the password of current operator.
You can exclude actions from deletion defining a regular expression that matches (case insensitive) the titles you would like to exclude (like ".*do not delete.*|.*keep this.*")
Server name can be used to bypass certificate check (will block the login action)
The list of deleted actions will be retained in directory "<Client folder>\HCL\" in a file named "<ExecutionTimestamp>_OldActions.xml"
Written by Andrea.Capasso@hcl.com using documentation from BigFix Wiki for parametrized fixlets
NOTE:Currently tested on Windows Server only - prepared for Linux
Property Details
26853 | |
Alpha - Code that was just developed | |
AAC::Clean OldActions | |
BESC | |
Utility | |
andrea.capasso@hcl.com | |
8/17/2017 12:00:00 AM | |
BigFix Maintenance | |
True | |
kapax on 3/29/2021 4:56:35 PM | |
kapax on 3/29/2021 4:56:35 PM | |
1444 Views / 10 Downloads | |
![]() ![]() ![]() ![]() ![]() |
Relevance

Actions
Action 1 (default)
action parameter query "User" with description "Leave empty for your operator ID, use '*' for all operators" with default "*"
action parameter query "Days" with description "Enter the number of days to retain expired/stopped actions: " with default "3650"
action parameter query "Exclude" with description "Enter a regex expression that appear in the title to exclude actions from deletion: " with default ".*do not delete.*|.*Policy.*"
action parameter query "Server" with description "BigFix server (empty to use current): " with default ""
action log all
if {parameter "User" = "" }
parameter "UserFilter"="{"and name of issuer of it = %25%2522" & (concatenation "" of values of headers "action-issuer-name" of action) & "%25%2522"}"
elseif {parameter "User" = "*" }
parameter "UserFilter"=""
else
parameter "UserFilter"="{"and name of issuer of it = %25%2522" & (parameter "User") & "%25%2522"}"
endif
if {parameter "Server" = "" }
parameter "BFServer"="{host name of root server}"
else
parameter "BFServer"="{parameter "Server"}"
endif
if {windows of operating system}
parameter "sep"="\"
parameter "ServerFolder"="{value "EnterpriseServerFolder" of key "HKLM\SOFTWARE\BigFix\Enterprise Server" of registry}"
parameter "BFAPIEXE"="{parameter "ServerFolder" & "IEM CLI\iem.exe"}"
else
parameter "sep"="/"
parameter "ServerFolder"="{"/opt/BESServer/"}"
parameter "BFAPIEXE"="{parameter "ServerFolder" & "IEM CLI/iem"}"
endif
folder create "{pathname of storage folder of client & parameter "sep" & "HCL"}"
parameter "TargetFolder"="{pathname of folder "HCL" of storage folder of client & parameter "sep"}"
parameter "ExecutionTimestamp"="{(((year of it as string & month of it as two digits & day_of_month of it as two digits) of Current Date ) & "T" &((two digit hour of it & two digit minute of it) of current time_of_day))}"
action log commands
appendfile "{parameter "BFAPIEXE"}" login -q --server={parameter "BFServer"} --user={concatenation "" of values of headers "action-issuer-name" of action} --password="{parameter "RDPW"}"
action log all
appendfile "{parameter "BFAPIEXE"}" get query --relevance "(id of it, state of it, name of it, name of issuer of it, now-Time Issued of it) of BES Actions whose ( exists State of it and (now - (Time Issued of it) > {parameter "Days"} * day) and state of it != %%22Open%%22 and name of it != case insensitive regex %%22.*{parameter "Exclude"}.*%%22 {parameter "UserFilter"})" --outFile "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "OldActions.xml"}"
delete "run.cmd"
move __appendfile run.cmd
if {windows of operating system}
wait run.cmd
else
wait sh run.cmd
endif
delete run.cmd
action log commands
appendfile {concatenation "%0d%0a" of (parameter "BFAPIEXE" & " delete action/" & concatenation "" of node values of first child of it) of child nodes whose (node name of it = "Answer" and node value of attribute 0 of it = "integer") of child nodes whose (node name of it = "Tuple") of child nodes whose (node name of it = "Result") of child node 0 of child node 1 of xml document of file (parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "OldActions.xml" )}
action log all
delete "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.cmd"}"
move __appendfile "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.cmd"}"
if {windows of operating system}
wait "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.cmd"}"
else
wait sh "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.cmd"}"
endif
delete "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.cmd"}"
This action will be considered successful when the applicability relevance evaluates to false.
Action 2
action parameter query "User" with description "Leave empty for your operator ID, use '*' for all operators" with default "*"
action parameter query "Days" with description "Enter the number of days to retain expired/stopped actions: " with default "3650"
action parameter query "Exclude" with description "Enter a regex expression that appear in the title to exclude actions from deletion: " with default ".*do not delete.*|.*Policy.*"
action parameter query "Server" with description "BigFix server (empty to use current): " with default ""
action log all
if {parameter "User" = "" }
parameter "UserFilter"="{"and name of issuer of it = %25%2522" & (concatenation "" of values of headers "action-issuer-name" of action) & "%25%2522"}"
elseif {parameter "User" = "*" }
parameter "UserFilter"=""
else
parameter "UserFilter"="{"and name of issuer of it = %25%2522" & (parameter "User") & "%25%2522"}"
endif
if {parameter "Server" = "" }
parameter "BFServer"="{host name of root server}"
else
parameter "BFServer"="{parameter "Server"}"
endif
if {windows of operating system}
parameter "sep"="\"
parameter "ServerFolder"="{value "EnterpriseServerFolder" of key "HKLM\SOFTWARE\BigFix\Enterprise Server" of registry}"
parameter "BFAPIEXE"="{parameter "ServerFolder" & "IEM CLI\iem.exe"}"
else
parameter "sep"="/"
parameter "ServerFolder"="{"/opt/BESServer/"}"
parameter "BFAPIEXE"="{parameter "ServerFolder" & "IEM CLI/iem"}"
endif
folder create "{pathname of storage folder of client & parameter "sep" & "HCL"}"
parameter "TargetFolder"="{pathname of folder "HCL" of storage folder of client & parameter "sep"}"
parameter "ExecutionTimestamp"="{(((year of it as string & month of it as two digits & day_of_month of it as two digits) of Current Date ) & "T" &((two digit hour of it & two digit minute of it) of current time_of_day))}"
action log commands
appendfile "{parameter "BFAPIEXE"}" login -q --server={parameter "BFServer"} --user={concatenation "" of values of headers "action-issuer-name" of action} --password="{parameter "RDPW"}"
action log all
appendfile "{parameter "BFAPIEXE"}" get query --relevance "(id of it, state of it, name of it, name of issuer of it, now-Time Issued of it) of BES Actions whose ( exists State of it and (now - (Time Issued of it) > {parameter "Days"} * day) and state of it != %%22Open%%22 and name of it != case insensitive regex %%22.*{parameter "Exclude"}.*%%22 {parameter "UserFilter"})" --outFile "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "OldActions.xml"}"
delete "run.cmd"
move __appendfile run.cmd
if {windows of operating system}
wait run.cmd
else
wait sh run.cmd
endif
delete run.cmd
action log command
appendfile {concatenation "%0d%0a" of (concatenation "" of node values of first child of it) of child nodes whose (node name of it = "Answer" and node value of attribute 0 of it = "integer") of child nodes whose (node name of it = "Tuple") of child nodes whose (node name of it = "Result") of child node 0 of child node 1 of xml document of file (parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "OldActions.xml" )}
delete "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.lst"}"
move __appendfile "{parameter "TargetFolder" & (parameter "ExecutionTimestamp") & "_" & "actionIDList.lst"}"
This action will be considered successful when the applicability relevance evaluates to false.
Sharing
Social Media: |